一、画一个简单的折线图,两点一线
import matplotlib.pyplot as plt
#plot()函数画图
plt.plot([5,15])#两个点,(0,5),(1,15)直线连接
plt.title("XXXXX折线统计图")#图标标题
plt.xlabel("X轴")#X轴标签
plt.ylabel("Y轴")#Y轴标签
plt.legend()#显示label的内容,因此会显'商品1'、'商品2'几个字
plt.show()#显示图
代码无问题,结果如图
可以看到汉字全都无法正确表示,我们只需要加入这两句代码:
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] #指定默认字体,用于处理画图时中文字符无法正常显示变成框框
加入完成后看运行结果,可以完美的显示汉字了。
二、在一个画布上画多个折线图
只需要多次调用plot()函数即可
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] #指定默认字体,用于处理画图时中文字符无法正常显示变成框框
#plot()函数画图
plt.plot([5,15],label='商品1',lw=2, marker='s',ms=10)#两个点,(0,5),(1,15)直线连接
plt.plot([3,6,9],label='商品2',lw=2,marker='s',ms=10)#三个点,(0,3),(1,6),(2,9)折线连接
plt.title("XXXXX折线统计图")#图标标题
plt.xlabel("X轴")#X轴标签
plt.ylabel("Y轴")#Y轴标签
plt.legend()#显示label的内容,因此会显'商品1'、'商品2'几个字
plt.show()#显示图
运行结果如下:
三、指定横坐标的点,并限定X轴范围
代码如下:
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] #指定默认字体,用于处理画图时中文字符无法正常显示变成框框
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
#plot()函数画图
#只传了一个列表,表示纵坐标的位置,横坐标则默认从0开始,刻度为1
plt.plot([5,15],label='商品1',lw=2, marker='s',ms=10)#两个点,(0,5),(1,15)直线连接
plt.plot([3,6,9],label='商品2',lw=2,marker='s',ms=10)#三个点,(0,3),(1,6),(2,9)折线连接
#传两个列表,第一个列表作为横坐标,第二个列表一一对应横坐标作为纵坐标
x1=[1,3,5,7,8]
y1=[21,23,25,27,30]
plt.plot(x1,y1,label='商品3',lw=5,marker='D',ms=5)#lw表示折线的粗细,marker表示点的标记形状,有s、^、o、D、P多种选择,ms表示标记形状的半径
plt.xlim(-2,10)#限定X轴范围在0-10
plt.title("XXXXX折线统计图")#图标标题
plt.xlabel("X轴")#X轴标签
plt.ylabel("Y轴")#Y轴标签
plt.legend()#显示label的内容,因此会显'商品1'、'商品2'几个字
plt.show()#显示图
plt.savefig('XXXXX折线统计图.png',bbox_inches='tight')
#plt.savefig('XXXXX折线统计图.pdf',dpi=1200,format='pdf',bbox_inches='tight')
运行结果如下所示,我们指定了X轴的范围,限定了第三条折线的横坐标的点的位置,以及其它影响折现样式的参数 :