matplotlib是python的一个可视化库,一般配合pandas来使用。
matplotlib默认是没有中文显示的,所以首先需要配置中文字体,
中文显示:
matplotlib.rc('font',family='Microsoft YaHei',size=10, weight='bold')
常用统计图:
1.折线图:(变化)plot
以折线的上升或下降来表示统计数量的增减变化的统计图
特点:能够展示数据的变化趋势,反应事物的变化情况(变化)
2.直方图:(统计)hist
由一系列高度不等的纵向条纹或线段表示数据分布的情况,
一般用横轴表示数据范围,纵轴表示分布情况。
特点:绘制连续性的数据,展示一组或者多组数据的分布状况(统计)
3.条形图:(统计)bar|barh
排列在工作表的列或行中的数据可以绘制到条形图中。
特点:绘制离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别(统计)
a.纵向条形 barplt.bar(x轴,y轴,width=0.5) # width设置条形宽度
b.横向条形 barhplt.barh(x轴,y轴,height=0.5) # height设置条形高低
# 例子:
matplotlib.rc('font',family='Microsoft YaHei',size=11)
plt.figure(figsize=(10,8),dpi=80)
x = range(1,21)
y1 = [random.randrange(5,15) for i in range(20)]
y2 = [random.randrange(5,25) for i in range(20)]
plt.barh(x,y1,alpha=0.8,label='a')
plt.barh(x,y2,alpha=0.5,label='b')
plt.xticks(list(range(0,30,5)))
plt.yticks(list(range(30)))
plt.grid(alpha=0.5)
plt.legend(loc=1)
plt.savefig('./ce.png')
plt.show()
4.散点图:(分布规律)scatter
用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。
特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)
plt.scatter(x轴,y轴)
# 例子:
matplotlib.rc('font',family='Microsoft YaHei',size=11)
plt.figure(figsize=(10,8),dpi=80)
x = range(1,21)
y1 = [random.randrange(5,15) for i in range(20)]
y2 = [random.randrange(5,25) for i in range(20)]
plt.scatter(x,y1,label='1')
plt.scatter(x,y2,label='2')
plt.xticks(list(range(0,30,5)))
plt.yticks(list(range(25)))
plt.grid(alpha=0.5)
plt.legend(loc=1)
plt.savefig('./ce.png')
plt.show()
常用操作:
1.设置图片大小:
plt.figure(figsize=(20,8),dpi=80)
2.描述信息,x轴和y轴表示什么,图表表示什么
plt.title(标题,fontsize=20)
plt.xlabel(x轴描述信息,fontsize=15)
plt.ylabel(y轴描述信息,fontsize=15)
3.调整x或者y轴的刻度的间距
plt.xticks()
# xticks参数:
ticks= 实际刻度(列表),
labels=显示刻度(列表),
rotation=90显示文字旋转度数
plt.xticks(ticks=[1, 2, 3],labels=['a', 'b', 'c'],rotation=90) # 传入刻度列表
plt.yticks(ticks=[1, 2, 3],labels=['a', 'b', 'c'],rotation=90)
4.线条的样式
plt.plot(x,y)
# 参数:
# color = 'r' # 线条颜色
# linestyle = ''--" # 线条风格
# linewidth=5 # 线条粗细
# alpha=0.5 # 线条透明度
5.图片保存到本地文件
plt.savefig('plt.svg')
# svg格式以矢量图格式保存
6.绘制网格:
plt.grid()
# 参数:
# alpha=0.5 #设置网格透明度为0.5即50%
7.一个图上绘制多个图形(plt多次plot即可)
plt.plot(x,y1,label='自己')
plt.plot(x,y2,label='同桌')
8.plt.legend() # 图例
# 参数:
plt.legend()
# loc=0 # 图例的位置
参考^这是windows下的设置