plt.legend()不能正常显示图例的解决方案

# -*- coding: utf-8 -*-
"""
plt.legend()不能正常显示图例的解决方案
情况1:只显示图例的首字母
对策:将label参数放在plot()中
情况2:多个同类型图例只显示第一个或只显示图例框格
对策:如下代码所示,在L1、L2后面要加英文逗号
情况3:多个不同类型的图例只显示第一个或显示图例框格
对策:如下代码所示,在L1后面要加英文逗号,但在L2后面不要加英文逗号

从上述情况看,matplotlib.pyplot还有改进空间:
如果不需在L1、L2后面手动添加英文逗号就能自动识别并正常显示,那样会更好


@author: 向上的天天
"""
import matplotlib.pyplot as plt
year = [i for i in range(2010,2016)]
price = [9800,9600,10000,9700,9900,9700]
sale = [48,55,53,56,46,65]
#下面两行设置两幅子图共用同一个X轴
fig,ax = plt.subplots(1, 1)
ax_sub = ax.twinx()
# L1, = ax.plot(year, price, '>-', label = 'price', color = 'blue') #折线图,L1、L2后面要加英文逗号
# L2, = ax_sub.plot(year, sale, '-.', label = 'sale', color = 'green') #折线图
L1, = ax.plot(year, price, '-.', label = 'price', color = 'red') #折线图,L1、L2后面要加英文逗号
L2 = ax_sub.bar(year, sale, label = 'sale', color = 'pink', alpha = 0.5) #条形图,L2后面不要加英文逗号
plt.legend(handles=[L1, L2], labels=['price', 'sale'], loc = 0, fontsize = 10) #显示图例
ax.set_xlabel('Year')
ax.set_ylabel('Price')
ax_sub.set_ylabel('Sale')
ax.set_title('Display')
plt.show() #在Spyder中本行可省略
 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值