matplotlib学习
matplotlib重新学习
基本要点
设置图片大小
1 | import matplotlib.pyplot as plt |
调整X或者Y轴上的刻度
1 | import matplotlib.pyplot as plt |
1 | import matplotlib.pyplot as plt |
matplotlib默认不支持中文字符,因为默认的英文字体无法显示汉字
查看linux/mac下面支持的字体:
fc-list 查看支持的字体fc-list :lang=zh 查看支持的中文(冒号前面有空格)
通过matplotlib.rc可以修改默认字体,具体方法参见源码(windows/linux)
通过matplotlib 下的font_manager可以解决
1 | import matplotlib.pyplot as plt |
给图像添加描述信息
1 | #设置中文字体my_font = font_manager,FontProperties(fname="/System/Library/Fonts/PingFang.ttc"! |
matplotlib的简单使用
1 | x = np.linspace(-1,1,50) |
plt.figure
规定一个一个窗口 下面的所有的步骤都会在这个窗口进行显示
figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
num:图像编号或名称,数字为编号 ,字符串为名称
figsize:指定figure的宽和高,单位为英寸;
dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框
坐标轴
plt.xlim((left,right))
更换坐标轴的左右端
plt.ytick(LIST,LIST)
在刻度上替换为对应范围的文字,第一个是刻度位置 第二个list是文字
如果需要插入一些数学符号需要r“$$”在此类编写 具体语法参考LaTeX
ax = plt.gca()
gcs = get current axis 获取轴,用来操作轴的属性和位置。
ax.spines[“right”].set_color(“none”)#设置边框颜色
1 | ax = plt.gca() |
图例
在plt.plot的时候在可以添加label的的参数
之后plt.legend的时候会自动调用这个label生成图例
当然有时候我们不想要全部的图例这个时候可以给这个图例的添加返回值对象,达到对特定的线段显示图例的效果
1 | l1, = plt.plot(x, y,label ="asd") |
需要注意的是如果要传入特定的线段对象的话返回值命名需要在后面加一个,用于解包
plt.legend
plt.legend( )中有handles、labels和loc三个参数,其中:
handles需要传入你所画线条的实例对象,
labels是图例的名称(能够覆盖在plt.plot( )中label参数值)
loc代表了图例在整个坐标轴平面中的位置(一般选取’best’这个参数值)
loc = ‘XXX’
这里的’XXX’代表了坐标面中的九个位置,例如loc = ‘center’表示坐标平面中心位置,九种参数值及所对应位置如下图所示
loc = (x, y)
(x, y)表示图例左下角的位置,这是最灵活的一种放置图例的方法,慢慢调整,总会找到你想要的放置图例的位置
注解
plt.scatter(x,y)
标注一个点
plt.annotate()
plt.annotate()用于标注文字
weight 设置字体线型
{‘ultralight’, ‘light’, ‘normal’, ‘regular’, ‘book’, ‘medium’, ‘roman’, ‘semibold’, ‘demibold’, ‘demi’, ‘bold’, ‘heavy’, ‘extra bold’, ‘black’}
color 设置字体颜色
- {‘b’, ‘g’, ‘r’, ‘c’, ‘m’, ‘y’, ‘k’, ‘w’}
- ‘black’,’red’等
- [0,1]之间的浮点型数据
- RGB或者RGBA, 如: (0.1, 0.2, 0.5)、(0.1, 0.2, 0.5, 0.3)等
arrowprops 箭头参数,参数类型为字典dict
- width:箭头的宽度(以点为单位)
- headwidth:箭头底部以点为单位的宽度
- headlength:箭头的长度(以点为单位)
- shrink:总长度的一部分,从两端“收缩”
- facecolor:箭头颜色
bbox给标题增加外框:
- boxstyle:方框外形
- facecolor:(简写fc)背景颜色
- edgecolor:(简写ec)边框线条颜色
- edgewidth:边框线条大小
1 | 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] |
绘制条形图
1 | a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归","生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",] |
1 | 列表a中电影分别在2017-09-14(b_14), 2017-09-15(b_15), 2017-09-16(b_16)三天的票房,展示列表中电影本身的票房以及同其他电影的数据对比情况 |
绘制直方图
1 | a=[131, 98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115, 99, 136, 126, 134, 95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117, 86, 95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123, 86, 101, 99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140, 83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144, 83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137, 92,121, 112, 146, 97, 137, 105, 98, 117, 112, 81, 97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112, 83, 94, 146, 133, 101,131, 116, 111, 84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150] |
组数要适当,太少会有较大的统计误差,大多规律不明显
1 | bin_width = 3 #设置组距为3num_bins = int((max(a)-min(a))/bin_width) #分为多少组 |