Python数据可视化原来这么玩儿(一)

统计与数据分析实战

共 3598字,需浏览 8分钟

 · 2020-09-16


◆ ◆ ◆  ◆ 



前言


matplotlib是一个庞大的绘图库模块,这节内容我们只导入其中的pyplot子模块就可以完成许多图表绘制。

按照约定俗成,我们使用plt调用相关的方法。

import matplotlib.pyplot as plt


折线图


  • 1. 画线plot( )

# 记得导入numpy库data = np.random.randint(85,95,10)plt.plot(data)plt.show()



默认情况下,含数据的列表当参数传给plot( ),列表内的数据会被视为y轴的值,x轴的值会依列表值的索引位置自动产生。


细心的朋友可能会发现,这个坐标的原点不是(0,0)。别着急,我们使用axis( )设定x,y轴的最小和最大刻度。


data = np.random.randint(85,95,10)plt.plot(data)plt.axis([0,10,0,100]) # 默认[x_min,x_max,y_min,y_max]plt.show()



  • 2. 线条宽度linewidth

data = np.random.randint(85,95,10)plt.plot(data,linewidth = 5)plt.axis([0,10,50,150])plt.show()


够粗吗?!


  • 3. 标题

data = np.random.randint(85,95,10)plt.plot(data,linewidth = 3)# 图表标题plt.title('Demo')# x轴标题plt.xlabel('index')# y轴标题plt.ylabel('value')plt.axis([0,10,50,150])plt.show()


此时,你们老板觉得不行,标题字太小了,不够突出!!!


嗯嗯,立马在线卑微修改~

data = np.random.randint(85,95,10)plt.plot(data,linewidth = 3)# fontsize修改字体大小plt.title('Big Demo',fontsize = 40)plt.xlabel('index',fontsize = 18)plt.ylabel('value',fontsize = 18)plt.axis([0,10,50,150])plt.show()



够大吗?!

  • 4. 坐标轴刻度的设定

data = np.random.randint(85,95,10)plt.plot(data,linewidth = 3)plt.title('Demo',fontsize = 26)plt.xlabel('index',fontsize = 18)plt.ylabel('value',fontsize = 18)plt.axis([0,10,50,150])# 坐标轴刻度的设定plt.tick_params(axis='both',labelsize = 18,color = 'red')plt.show()

在设计图表时,可以使用tick_params( )设计设定坐标轴的刻度大小,颜色以及应用范围。


  • 5. 修订图表的起始值

data = np.random.randint(85,95,10)# 增加x轴数据列表,不再使用默认值x = [1,2,3,4,5,6,7,8,9,10]plt.plot(x,data,linewidth = 3)plt.title('Demo',fontsize = 26)plt.xlabel('index',fontsize = 18)plt.ylabel('value',fontsize = 18)plt.axis([1,10,50,150])plt.tick_params(axis='both',labelsize = 12,color = 'red')plt.show()


当图表的x轴有实际意义的时候,需要自己修订图表的起始值。这时候,只需要增加一列x轴的数据,添加到plot( )方法中即可。


  • 6. 多组数据的应用

data1 = np.random.randint(85,95,10)data2 = np.random.randint(65,75,10)x = [1,2,3,4,5,6,7,8,9,10]plt.plot(x,data1,x,data2,linewidth = 3)plt.title('Demo',fontsize = 26)plt.xlabel('index',fontsize = 18)plt.ylabel('value',fontsize = 18)plt.axis([1,10,50,150])plt.tick_params(axis='both',labelsize = 12,color = 'red')plt.show()


  • 7. 线条色彩与样式

data1 = np.random.randint(85,95,10)data2 = np.random.randint(65,75,10)data3 = np.random.randint(55,60,10)data4 = np.random.randint(100,105,10)data5 = np.random.randint(110,120,10)x = [1,2,3,4,5,6,7,8,9,10]plt.plot(x,data1,'b--',x,data2,'r-*',x,data3,'y:',x,data4,'g.',x,data5,'-s')plt.title('Demo',fontsize = 26)plt.xlabel('index',fontsize = 18)plt.ylabel('value',fontsize = 18)plt.axis([1,10,50,150])plt.tick_params(axis='both',labelsize = 12,color = 'red')plt.show()


  • 8. 刻度设计

pv = [1003,1459,1289,1350]uv = [567,675,621,666]months = [1,2,3,4]plt.plot(months,pv,months,uv)plt.show()


由数据可知,x轴代表的是月份数据,具有实际意义,且我们只需要1,2,3,4这4个月份刻度即可,这里我们使用xticks( )设定x轴刻度。
pv = [1003,1459,1289,1350]uv = [567,675,621,666]months = [1,2,3,4]plt.xticks(months)
plt.plot(months,pv,months,uv)plt.show()



  • 9. 图例legend( )

pv = [1003,1459,1289,1350]uv = [567,675,621,666]months = [1,2,3,4]plt.xticks(months)plt.plot(months,pv,months,uv)# 图例plt.legend(['pv','uv'],loc = 'best')plt.show()


  • 10. 保存图片文件

pv = [1003,1459,1289,1350]uv = [567,675,621,666]months = [1,2,3,4]plt.xticks(months)
plt.plot(months,pv,'-^',months,uv,'--',linewidth = 3)plt.legend(['pv','uv'],loc = 'best')plt.title('Number of Visitor',fontsize = 26)plt.xlabel('month',fontsize = 18)plt.ylabel('value',fontsize = 18)plt.tick_params(axis='both',labelsize = 12,color = 'red')# 第一个参数是所存的文件名,第二个参数代表将图表外多余的空间删除plt.savefig('out.jpg',bbox_inches = 'tight')plt.show()plt.close()



往日精彩



送书~转发朋友圈,点赞超50即可获得本书。先到先得。



>>> 严小样儿火了! <<<


>>> Python技巧1 <<<


>>> Python技巧2  <<<


>>> 不可不知系列  <<<


>>> 高级技巧  <<<


>>> 在看,点了会变黄  <<<



在看”的永远18岁~


让我知道你18 




点个赞,证明你还爱我



好看的人才能点


浏览 22
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报