Matplotlib绘图中多平台销量曲线标签添加失效问题咨询
解决Matplotlib曲线标签不显示的问题
你遇到的问题很常见——虽然给每条曲线都指定了label参数,但Matplotlib不会自动渲染图例,必须手动调用图例显示的函数才行。
只需要在plt.show()之前添加一行plt.legend(),就能让所有平台的标签正常显示出来。修改后的完整代码如下:
platforms = ['PS2', 'X360', 'PS3', 'Wii', 'DS', 'PS'] for platform in platforms: df = df_sales_year.query('platform == @platform') x = df['year_of_release'] y = df['total_sales'] ax.plot(x, y, label=platform) plt.title('Количество продаж в год на платформах', fontsize=16) plt.xlabel('Год', fontsize=14) plt.ylabel('Продажи(млн. копий)', fontsize=14) plt.legend() # 这行是关键,用来触发图例显示 plt.show()
另外给你两个实用小提示:
- 如果想调整图例位置,给
plt.legend()加参数即可,比如plt.legend(loc='upper left')固定左上角,或者plt.legend(bbox_to_anchor=(1.05, 1))把图例放在画布外侧,避免遮挡曲线 - 要是你的
ax是通过fig, ax = plt.subplots()创建的,也可以用ax.legend()来调用,效果完全一致
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

