Matplotlib相关
2018-06-22 本文已影响29人
修行猿
导入
from matplotlib import pyplot as plt
设置绘图的大小与清晰度
plt.figure(figsize=(20,8),dpi=80)
设置x,y轴的显示
x_ticks = ["{}岁".format(i) for i in x]
plt.xticks(x,x_ticks,rotation=45)
获取中文字体的位置
终端命令 fc-list :lang=zh 查看支持的中文
显示中文字体
from matplotlib import font_manager
font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")
plt.xticks(x,x_ticks,fontproperties=font,rotation=45)#x轴显示中文
plt.legend(prop=font,loc=0) #图例显示中文 loc表示位置
plt.xlabel("时间",fontproperties=my_font)#x坐标title显示中文
plt.title("10点到12点的气温变化",fontproperties=my_font) #标题显示中文
绘制网格
plt.grid(alpha=0.4)
多个折线图绘制
plt.plot(x,y_1,label="自己",color="orange",linestyle=":",linewidth=5,alpha=0.5) #label表示图例
plt.plot(x,y_2,label="同桌",color="cyan",linestyle="--")#linestyle :表示虚线
各种图的绘制
#折线图
plt.plot(x,y_1,label="自己",color="orange",linestyle=":",linewidth=5,alpha=0.5)
#散点图
plt.scatter(x_10,y_10)
#柱状图
plt.bar(x,y_3,width=0.5)
#横着的柱状图
plt.barh(x,y_3,height=0.8)
#绘制直方图
#组数=(max(a)-min(a))/组距
plt.hist(a,10)#10为组数
最终步骤
plt.show()
保存图片
plt.savefig("./t1.png")
#plt.savefig("./t1.svg") 保存成svg格式
如何绘制多个条形图
#需要将x移动一点 不然就会出现重叠
y = [random.randint(10,30) for i in range(0,30)]
y_1 = [random.randint(10,30) for i in range(0,30)]
name = ["{} age".format(i) for i in range(0,30)]
bar_width = 0.2
x= range(0,30)
x_1 =[i+bar_width for i in x]
plt.bar(x,y,width=bar_width)
plt.bar(x_1,y_1,width=bar_width)
plt.xticks([i+bar_width/2 for i in x],name,rotation=270)
plt.show()
如何绘制直方图
from matplotlib import pyplot as plt
import random
d = 5 #组距尽量能被max(a)-min(a)整除,否则会导致柱子宽度变大或者变小
a = [random.randint(0,150) for i in range(0,100)]
plt.hist(a,(max(a)-min(a))/d)
#plt.hist(a,(max(a)-min(a))/d,normed=1) 绘制频率直方图
plt.xticks(range(min(a),max(a)+d,d),rotation=270)
plt.grid()
plt.show()