1、什么是matplotlib
matplotlib是最流行的Python底层绘图库,主要做数据可视化图表,名字取于MATLAB,模仿MATLAB搭建。
2、matplotlib基本要点
1、设置图片大小
2、描述信息,比如x轴和y轴表示什么,这个图表示什么
3、调整x或y的刻度的间距
4、线条的样式(颜色、透明度)
3、matplotlib的折线图、散点图、直方图、柱状图
折线图:plt.plot()
散点图:plt.scatter()
直方图:plt.hist()
柱状图:plt.bar()
水平柱状图:plt.barh()
4、实战训练
折线图实例:
1、如果列表a表示10点到12点的每一分钟的气温,绘制折线图观察每分钟气温的变化情况?
a=[random.randint(20,35) for i in range(120)]

import matplotlib.pyplot as plt
import matplotlib
import random
matplotlib.rc('font',family='MicroSoft YaHei')
random.seed(10)#设置一个随机种子
x=range(120)
y=[random.randint(20,35)for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
_x=list(x)
_xticks_labels=['10点{}分'.format(i) for i in range(60)]
_xticks_labels+=['11点{}分'.format(i) for i in range(60)]
plt.xticks(_x[::3],_xticks_labels[::3],rotation=45)
plt.xlabel('时间')
plt.ylabel('温度')
plt.title('10点到12点的每分钟气温变化图')
plt.show()

运行结果:

2、假设大家在30岁的时候,根据自己的实际情况,统计出来了从11岁到30岁每年交的女(男)朋友的数量如列表a,请绘制出该数据的折线图,以便分析自己每年交女(男)朋友的数量走势
a=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
要求:
y轴表示个数
x轴表示岁数,比如11岁,12岁等

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rc('font',family='MicroSoft YaHei')
x=range(11,31)
y=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
plt.xticks(range(11,31))
plt.xlabel('年龄')
plt.ylabel('数量')
plt.title('11岁到30岁每年交男女朋友的数量')
plt.grid(alpha=0.5) #设置网格,alpha设置网格透明度
plt.show()

运行结果:

3、假设大家在30岁的时候,根据自己的实际情况,统计出了你和同桌各自11岁到30岁每年交的男女朋友的数量如列表a和b,请在一个图中绘制出该数据的折线图,以便自己和同桌20年之间的差异,同时分析每年交男女朋友的数量走势
a=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b=[1,0,1,2,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]
要求:
y轴表示个数
x轴表示岁数,比如11岁,12岁等

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rc('font',family='MicroSoft YaHei')
x=range(11,31)
y1=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y2=[1,0,1,2,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y1,label='自己')
plt.plot(x,y2,label='同桌')
plt.plot(x,y2)
_xticks_labels=['{}岁'.format(i) for i in range(11,31)]
plt.xticks(range(11,31),_xticks_labels)
plt.xlabel('年龄')
plt.ylabel('数量')
plt.title('11岁到30岁每年交男女朋友的数量')
plt.legend() #设置图例
plt.grid(alpha=0.5)
plt.show()

运行结果:

折线图的更多应用场景
1、呈现公司产品(不同区域)每天活跃用户数
2、呈现app每天下载数量
3、呈现产品新功能上线后,用户点击次数随时间的变化
4、呈现员工每天下班时间
散点图实例:
1、假设通过爬虫获取到了北京的2016年3,10月份每天白天的最高气温(分别位于列表a,b),那么此时如何寻找出气温和随时间(天)变化的某种规律?
a=[11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
b=[26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rc('font',family='MicroSoft YaHei')
y_3=[11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
y_10=[26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,3,6]
x_3=range(1,32)
x_10=range(51,82)
plt.figure(figsize=(20,8),dpi=80)
plt.scatter(x_3,y_3,label='3月份')
plt.scatter(x_10,y_10,label='10月份')
_x=list(x_3)+list(x_10)
_xticks_labels=['3月{}日'.format(i) for i in x_3]
_xticks_labels+=['10月{}日'.format(i-50) for i in x_10]
plt.xticks(_x,_xticks_labels,rotation=90)
plt.xlabel('时间')
plt.ylabel('温度')
plt.legend()
plt.title('3月份与10月份北京每天的气温')
plt.show()

运行结果:

散点图的更多应用场景:
1、不同条件(维度)之间的内在关联关系
2、观察数据的离散聚合程度
条形图实例
1、假设你获取到了2017年内部电影票房前20的电影(列表a)和电影票房数据(列表b),那么如何更加直观的展示该数据?
a=[“战狼2”,“速度与激情8”,“功夫瑜伽”,“西游伏妖篇”,“变形金刚5∶最后的骑士”,“摔跤吧!爸爸” ,“加勒比海盗5∶死无对证” ,“金刚:骷髅岛”,“极限特工∶终极回归”,“生化危机6:终章” ,“乘风破浪”,“神偷奶爸3”,“智取威虎山”,“大闹天竺” ,“金刚狼3∶殊死一战”,“蜘蛛侠:英雄归来”,“悟空传”,“银河护卫队2”,“情圣”,“新木乃伊”,]
b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]
代码:

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rc('font',family='MicroSoft YaHei')
x=["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5∶最后的骑士","摔跤吧!爸爸" ,"加勒比海盗5∶死无对证" ,"金刚:骷髅岛","极限特工∶终极回归","生化危机6:终章" ,"乘风破浪","神偷奶爸3","智取威虎山","大闹天竺" ,"金刚狼3∶殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",]
y=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(x)),y,width=0.4)
#plt.yticks(range(len(x)),x)
plt.xlabel("电影名称")
plt.ylabel("票房(单位/亿)")
plt.title("2017年内地电影票房前20的电影票房情况")
plt.grid(alpha=0.5)
plt.xticks(range(len(x)),x,rotation=45)
plt.show()

运行结果:

画横条形图
代码:

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rc('font',family='MicroSoft YaHei')
x=["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5∶最后的骑士","摔跤吧!爸爸" ,"加勒比海盗5∶死无对证" ,"金刚:骷髅岛","极限特工∶终极回归","生化危机6:终章" ,"乘风破浪","神偷奶爸3","智取威虎山","大闹天竺" ,"金刚狼3∶殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",]
y=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]
plt.figure(figsize=(20,8),dpi=80)
plt.barh(range(len(x)),y,height=0.4)
plt.ylabel("电影名称")
plt.xlabel("票房(单位/亿)")
plt.title("2017年内地电影票房前20的电影票房情况")
plt.yticks(range(len(x)),x)
plt.show()

运行结果:

2、假设你知道了列表a中电影分别在2017-09-14(b-14),2017-09-15(b-15),2017-09-16(b-16)三天的票房,为了展示列表中电影本身的票房以及同其他电影的数据对比情况,应该如何更加直观的呈现该数据?
a=[“猩球崛起3∶终极之战”,“敦刻尔克”, “奠蛛侠:英雄归来”,“战狼2”]
b_16=[15746,312,4497,319]
b_15 =[12357,156,2045,168]
b_14 =[2358,399,2358,362]
代码:

from matplotlib import pyplot as plt
import matplotlib
matplotlib.rc('font',family='MicroSoft YaHei')
a=["猩球崛起3∶终极之战","敦刻尔克", "奠蛛侠:英雄归来","战狼2"]
b_16=[15746,312,4497,319]
b_15 =[12357,156,2045,168]
b_14 =[2358,399,2358,362]
plt.figure(figsize=(20,8),dpi=80)
bar_width=0.1
x_14=list(range(len(a)))
x_15=[i+bar_width for i in x_14]
x_16=[i+bar_width*2 for i in x_14]
plt.bar(range(len(a)),b_14,width=bar_width,label='14日')
plt.bar(x_15,b_15,width=bar_width,label="15日")
plt.bar(x_16,b_16,width=bar_width,label='16日')
plt.xticks(x_15,a)
plt.xlabel('电影名字')
plt.ylabel('票房')
plt.legend()
plt.show()

运行结果:

条形图的更多应用场景
1、数量统计
2、频率统计(市场饱和度)
直方图实例
1、假设你获取了250部电影的时长(列表a中),希望统计出这些电影时长的分布状态(比如时长为100分钟到120分钟电影的数量,出现的频率)等信息,你应该如何呈现这些数据?
a=[142, 109, 105, 81, 95, 121, 83, 90, 99, 88, 100, 144, 136,
108, 120, 135, 128, 123, 136, 135, 148, 135, 139, 139, 129, 86,
123, 88, 129, 95, 98, 146, 140, 143, 89, 131, 142, 126, 95,
124, 97, 112, 89, 88, 137, 102, 138, 118, 99, 145, 124, 111,
92, 92, 130, 96, 98, 91, 144, 85, 118, 83, 123, 128, 129,
147, 89, 120, 102, 96, 80, 134, 122, 88, 126, 104, 144, 109,
98, 108, 104, 106, 121, 99, 126, 102, 88, 108, 143, 125, 111,
94, 83, 121, 128, 80, 107, 136, 121, 146, 139, 138, 115, 94,
116, 101, 131, 115, 83, 90, 83, 123, 102, 115, 88, 144, 81,
123, 134, 120, 110, 133, 109, 125, 136, 84, 110, 127, 120, 116,
85, 86, 149, 94, 118, 111, 89, 143, 108, 111, 127, 128, 130,
136, 117, 106, 90, 141, 106, 85, 126, 120, 130, 113, 125, 111,
129, 145, 111, 100, 85, 109, 146, 117, 129, 149, 123, 127, 129,
116, 100, 113, 133, 150, 140, 119, 110, 100, 110, 85, 122, 104,
129, 86, 133, 133, 149, 90, 102, 120, 140, 136, 125, 120, 88,
137, 132, 131, 105, 143, 110, 106, 142, 144, 133, 107, 87, 122,
134, 81, 81, 143, 108, 105, 113, 99, 132, 108, 132, 135, 96,
111, 111, 108, 120, 124, 126, 90, 138, 139, 140, 91, 148, 125,
81, 138, 110, 126, 84, 115, 143, 112, 92, 124, 142, 86, 109,
106, 125, 81]
代码:

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rc("font",family="MicroSoft YaHei")
a=[142, 109, 105,  81,  95, 121,  83,  90,  99,  88, 100, 144, 136,108, 120, 135, 128, 123, 136, 135, 148, 135, 139, 139, 129,  86,123,  88, 129,  95,  98, 146, 140, 143,  89, 131, 142, 126,  95,124,  97, 112,  89,  88, 137, 102, 138, 118,  99, 145, 124, 111,92,  92, 130,  96,  98,  91, 144,  85, 118,  83, 123, 128, 129,147,  89, 120, 102,  96,  80, 134, 122,  88, 126, 104, 144, 109,98, 108, 104, 106, 121,  99, 126, 102,  88, 108, 143, 125, 111,94,  83, 121, 128,  80, 107, 136, 121, 146, 139, 138, 115,  94,116, 101, 131, 115,  83,  90,  83, 123, 102, 115,  88, 144,  81,123, 134, 120, 110, 133, 109, 125, 136,  84, 110, 127, 120, 116,85,  86, 149,  94, 118, 111,  89, 143, 108, 111, 127, 128, 130,136, 117, 106,  90, 141, 106,  85, 126, 120, 130, 113, 125, 111,129, 145, 111, 100,  85, 109, 146, 117, 129, 149, 123, 127, 129,116, 100, 113, 133, 150, 140, 119, 110, 100, 110,  85, 122, 104,129,  86, 133, 133, 149,  90, 102, 120, 140, 136, 125, 120,  88,137, 132, 131, 105, 143, 110, 106, 142, 144, 133, 107,  87, 122,134,  81,  81, 143, 108, 105, 113,  99, 132, 108, 132, 135,  96,111, 111, 108, 120, 124, 126,  90, 138, 139, 140,  91, 148, 125,81, 138, 110, 126,  84, 115, 143, 112,  92, 124, 142,  86, 109,106, 125,  81]
plt.figure(figsize=(20,8),dpi=80)
#计算组数
d=5
num_bins=(max(a)-min(a))//d
plt.xticks(range(min(a),max(a)+d,d))
plt.hist(a,num_bins)
plt.xlabel('电影时长分布')
plt.ylabel('数量')
plt.grid()

运行结果:

直方图应用场景
1、用户的年龄分布状态
2、一段时间内用户点击次数的分布状态
3、用户活跃时间的分布状态

matplotlib知识点总结相关推荐

  1. matplotlib 知识点整理:ax与figure

    1 axis与figure 我们可以把figure看成一个大的画布:ax(axis)看成是画布中的一块区域 2 plt.plot()与ax.plot() 如果不考虑子图的话,plt.plot()效果和 ...

  2. 用python做炒股软件-python程序源码_基于python的炒股软件

    股票模拟交易系统设计与实现 不但能够进行界面的设计,还可以实现各个窗口的关联,通过WPF实现和其余窗口的关联,而且WPF中的类不但能够和其中一个窗口进行关联,还可以跟许多功能操作接口,WPF在对窗口对 ...

  3. python库整理目录

     zip与zip(*)_刘文巾的博客-CSDN博客 python函数整理_刘文巾的博客-CSDN博客 python笔记:正则表达式_刘文巾的博客-CSDN博客 python笔记:深拷贝与浅拷贝_刘文巾 ...

  4. python 数据分析班_Python数据分析班

    第一课 Python入门 知识点1:Python安装 知识点2:常用数据分析库NumPy.Scipy.Pandas.matplotlib安装 知识点3:常用高级数据分析库scikit-learn.NL ...

  5. 在我的新书里,尝试着用股票案例讲述Python爬虫大数据可视化等知识

    我的新书,<基于股票大数据分析的Python入门实战>,预计将于2019年底在清华出版社出版. 如果大家对大数据分析有兴趣,又想学习Python,这本书是一本不错的选择.从知识体系上来看, ...

  6. 数据科学库(HM)_第2节_matplotlib绘图

    目录 matplotlib 对比常用统计图 绘制散点图 绘制条形图 绘制直方图 matplotlib知识点汇总 matplotlib使用的流程总结 matplotlib更多的图形样式 更多的绘图工具 ...

  7. OpenCV-Python图像直方图计算calcHist函数详解、示例及图形呈现

    ☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ░ 一.引言 在前面几篇直方图相关的文章中介绍了直方图均衡.直方图匹配.局部直方图处理.基 ...

  8. matplotlib一些常用知识点的整理,

    本文作为学习过程中对matplotlib一些常用知识点的整理,方便查找. 强烈推荐ipython 无论你工作在什么项目上,IPython都是值得推荐的.利用ipython --pylab,可以进入Py ...

  9. ## matplotlib.pyplot库的知识点之bar函数——绘制条形图

    matplotlib.pyplot库的知识点之bar函数--绘制条形图 Help on BarContainer in module matplotlib.container object:class ...

最新文章

  1. Linux下Rsync+Inotify-tools实现数据实时同步
  2. The 2016 ACM-ICPC Asia China-Final Contest Promblem D
  3. Spring Boot是什么
  4. blockly自定义中文出问题_[BlocklyNukkit入门]#5自定义物品
  5. jquery 使用textarea
  6. SHELL编写NGINX自动部署脚本
  7. 具体问题具体分析 之 QA票
  8. 设置TOMCAT TITLE 、 内存大小 、jdk路径
  9. python3学习总结(个人遇到问题后搞明白的知识点总结)
  10. 关于css3的背景切割(background-clip)、背景原点(background-origin)的使用
  11. 网页实现语音对讲_GB28181实现摄像头语音对讲 - web音频采集调用示例
  12. 通过同花顺股票程序化交易接口的止损方法有哪些?
  13. WPF学习之绘图和动画
  14. 迟来的2015年终总结
  15. KeyBERT进行中文关键词提取
  16. 【辗转反侧不得眠,心中疑惑何时解】---前段时间安装了showdoc,由于停电忘记怎么安装的了--稀里糊涂的重启showdoc
  17. 算法提高 盾神与砝码称重
  18. unity.生成表示地图信息的二维数组_Unity3D 中生成任意形状3D Texture amp; 体积云...
  19. ICPR 2020 U∧2-Net之AI生成肖像画,精细到毛发!
  20. C20_OC10-内存管理

热门文章

  1. Python在抖音上也火?
  2. JavaEE学习日志(六十二): jQuery遍历,jQuery事件,省市联动,左右互选
  3. H5移动端3大框架-html5
  4. 苹果手机软件升级密码_如果苹果手机iPhone6s不升级,一直使用ios9系统,可以使用几年?...
  5. map遍历的5种方法分享
  6. 高考成绩可以查询了,用Python爬取数据:看看哪些学校专业更受宠
  7. 微信小程序中bindtap和catchtap
  8. win11家庭版远程桌面无法连接,出现“这可能是由于CredSSP加密数据库修正问题”解决方案
  9. Window10 远程桌面连接出现身份验证错误,提示CredSSP加密数据库修正
  10. 富平春天服饰 怎么样呀