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()
上一篇 下一篇

猜你喜欢

热点阅读