1.绘制散点图
使用的方法:scatter(x,y) 假设通过爬虫你获取到了长沙2018年10,11月份每天白天的最高气温(分别位于列表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]
2.绘制条形图
- 2.1使用的方法:bar(x,y) 假设你获取到了2019年内地电影票房前20的电影(列表a)和电影票房数据(列表b),那么如何更加直观 的展示该数据 a = [“流浪地球”,“复仇者联盟4:终局之战”,“哪吒之魔童降世”,“疯狂的外星人”,“飞驰人生”,“蜘蛛侠:英 雄远征”,“扫毒2天地对决”,“烈火英雄”,“大黄蜂”,“惊奇队长”,“比悲伤更悲伤的故事”,“哥斯拉2:怪兽之 王”,“阿丽塔:战斗天使”,“银河补习班”,“狮子王”,“反贪风暴4”,“熊出没”,“大侦探皮卡丘”,"新喜剧之王 ",“使徒行者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]
- 示例1
- 2.2绘制横向条形图 使用的方法:barh(x,y) 把x轴横过来:查看源码,** def barh(self, y, width, height=0.8, left=None, *, align=“center”, kwargs): r""" Make a horizontal bar plot. 更改plt.bar(x,y)为plt.barh(x,y),删除rotation=45和x数据里面的 更改plt.xticks(range(len(x)),x,fontproperties=font)为plt.yticks(range(len(x)),x,fontproperties=font) 代码和效果如下:
要实现排名高的前面: 更改plt.barh(x[::-1],y[::-1]),将x和y数据反转 更改plt.yticks(range(len(x)),x,fontproperties=font) 为 plt.yticks(range(len(x)),x[::-1],fontproperties=font) 代码、效果如下:
- 2.3 绘制多条条形图 如何在一张图里绘制多个条形图? x1 = [1,3,5,7,9] data1 = [5,2,7,8,2] x2 = [1,3,5,7,9] data2 = [8,6,2,5,6]
- 示例
解决办法1:import numpy as np,x2 = np.array(x1) + 1 解决办法2:使用列表推导式 代码、效果如下:
- 条形图练习 假设你知道了列表a中电影分别在2017-09-14(b_14),2017-09-15(b_15),2017-09-16(b_16)三天的票房, 为了展示列表中电影本身的票房以及同其他电影的数据对比情况,应该如何更加直观的呈现该数 据 a = [‘流浪地球’,‘复仇者联盟4’,‘哪吒之魔童降世’,‘疯狂的外星人’] b_14 = [2358,399,2358,362] b_15 = [12357,156,2045,168] b_16 = [15746,312,4497,319]
3.绘制直方图
- 类似于柱状图
- 通过将数组组合在一起来显示分布
- 使用的方法:hist(x,bins) 组数:将数据分组,当数据在100个以内时,按数据多少常分5-12组 组距:指每个小组的两个端点的距离 组数 = 极差/组距 极差=>max(a)-min(a) 组距=>78到81 组距3
- 示例
频率图代码、效果如下:
4.绘制饼图
plt.pie() 绘制饼图 练习:统计5个国家每年人口的变化情况
5. 绘制3D立体图形
mplot3d:matplotlib里用于绘制3D图形的一个模块 主要通过Axes3D完成3D绘图 3D绘图步骤 1.创建3D图像画布 2.通过ax绘制图像
5.1 3D曲线
Axes3D.plot(xs,ys,zs,zdir) xs,ys,zs:点的三维坐标 zdir:竖直轴,默认为z
5.2 3D散点图
Axes3D.scatter(xs,ys,zs,zdir,s,c,marker) s:点的大小 c:点的颜色 marker:点的标记
5.3 3D平面图
6.子图的使用
- plt.subplots(nrows,ncols,sharex,sharey) nrows,ncols 分割的行数和列数 sharex,sharey 是否共享x轴、y轴
- 示例
添加参数设置共享x轴:fig,suplot_arr = plt.subplots(2,2,figsize=(8,8),sharex=True) # 共享x轴 效果如下:
添加参数设置共享y轴:fig,suplot_arr = plt.subplots(2,2,figsize=(8,8),sharey=True) # 共享y轴 效果如下:
7.matplotlib常见问题总结
- 应该选择那种图形来呈现数据
- matplotlib.plot(x,y)
- matplotlib.bar(x,y)
- matplotlib.scatter(x,y)
- matplotlib.hist(data,bins,normed)
- xticks和yticks的设置
- label和title,grid的设置
- 绘图的大小和保存图片