matplotlib中pyplot的基本使用
基本绘图
import random as r
from matplotlib import pyplot as plt
x=range(1,21)
y=[r.randint(1,40) for i in range(20)]
# 传入x,y坐标数据
plt.plot(x,y)
# 显示图像
plt.show()
设置图片大小和保存图片
import random as r
from matplotlib import pyplot as plt
x=range(1,21)
y=[r.randint(1,40) for i in range(20)]
#设置图片尺寸和清晰度
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
#保存图片
plt.savefig(r'C:\Users\xxx\Desktop\1.png')
plt.show()
设置x坐标和y坐标显示内容
import random as r
from matplotlib import pyplot as plt
x=range(1,21)
y=[r.randint(i,200) for i in range(20)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
# x坐标显示内容设置方式
_xtick_labels=["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels)
#plt.xticks(x,_xtick_labels,rotation=90)rotation关键字用来表示将文字旋转多少度
# y根据自己需求设置
# _ytick_labels=["{}cm".format(i) for i in y]
# plt.yticks(y,_ytick_labels)
plt.savefig(r'C:\Users\xxx\Desktop\1.png')
plt.show()
可以发现坐标出现了乱码,添加下列代码可以防止中文乱码
import random as r
from matplotlib import pyplot as plt
#防止中文乱码
from matplotlib import rcParams
rcParams['font.sans-serif'] = ['SimHei']
rcParams['axes.unicode_minus'] = False
x=range(1,21)
y=[r.randint(i,200) for i in range(20)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
_xtick_labels=["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels)
plt.savefig(r'C:\Users\于昊炜\Desktop\1.png')
plt.show()
设置x轴标题,y轴标题,顶部标题
import random as r
from matplotlib import pyplot as plt
from matplotlib import rcParams
rcParams['font.sans-serif'] = ['SimHei']
rcParams['axes.unicode_minus'] = False
x=range(1,21)
y=[r.randint(i,200) for i in range(20)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
_xtick_labels=["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels)
# 用来设置x轴标题,y轴标题,顶部标题
plt.xlabel("年龄")
plt.ylabel("身高")
plt.title("示例标题")
plt.savefig(r'C:\Users\于昊炜\Desktop\1.png')
plt.show()
如何显示多条线,以及添加说明
import random as r
from matplotlib import pyplot as plt
from matplotlib import rcParams
rcParams['font.sans-serif'] = ['SimHei']
rcParams['axes.unicode_minus'] = False
x=range(1,21)
y=[r.randint(i,200) for i in range(20)]
y2=[r.randint(1,100) for i in range(20)]
plt.figure(figsize=(20,8),dpi=80)
#给线条设置label才能添加图例
#多次plot就可以画多条线
plt.plot(x,y,label="小明")
plt.plot(x,y2,label="小红")
#添加图例,loc设置位置
plt.legend(loc="upper left")
_xtick_labels=["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels)
plt.xlabel("年龄")
plt.ylabel("身高")
plt.title("示例标题")
plt.savefig(r'C:\Users\于昊炜\Desktop\1.png')
plt.show()
此外plot中还可以设置多种样式
plt.plot(x,y,label="自己",color="cyan",linestyle="-.",linewidth="5")
#color可以用来设置颜色,linestyle设置样式,linewidth设置线条粗细
最后一个知识点,设置网格线的数量取决于xtick和ytick
import random as r
from matplotlib import pyplot as plt
from matplotlib import rcParams
rcParams['font.sans-serif'] = ['SimHei']
rcParams['axes.unicode_minus'] = False
x=range(1,21)
y=[r.randint(i,200) for i in range(20)]
y2=[r.randint(1,100) for i in range(20)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y,label="小明",linewidth="5")
plt.plot(x,y2,label="小红")
plt.legend(loc="upper left")
_xtick_labels=["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels)
plt.yticks(list(range(10,200,10)))
plt.xlabel("年龄")
plt.ylabel("身高")
plt.title("示例标题")
plt.grid(alpha=1)#设置网格线,alpha设置网格清晰度
plt.savefig(r'C:\Users\于昊炜\Desktop\1.png')
plt.show()