锵锵锵,今天学习Matplotlib,首先上中文官方文档。我们这次是在jupyter notebook里实现的,
import matplotlib.pyplot as plt %matplotlib inline #在notbook中显示所绘图像 plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
举例plt.plot()常用参数
color
用以下方法查看,seaborn扩展库在字典seaborn.xkcd_rgb中包含了一些扩展的颜色,输入颜色名字对应该颜色的十六进制码
import seaborn
seaborn.xkcd_rgb
marker
定义点的样式,这里小白只写几个小白不常用但感觉比较好看的吧,像点直线虚线大家应该都会,这里就不写了
字符 | 实例 |
---|---|
‘h’ | 六边形点1 |
‘H’ | 六边形点2 |
‘d’ | 瘦菱形点 |
‘D’ | 实心菱形点 |
‘p’ | 五角点 |
‘s’ | 正方形点 |
‘1’ | 下三叉点 |
‘2’ | 上三叉点 |
‘3’ | 左三叉点 |
‘4’ | 右三叉点 |
linestyle
定义两点之间采用什么方式连接
以上三个参数可以放一起(若需要三参数一起运用则只能选8中颜色b,g,y,k,w,r,c,)
其他参数
linewidth:定义线的宽度(粗细)最多20
alpha:定义线条的透明度(线的深浅)范围0至1
drawstyle:定义描点绘制样式,例如一步一步画即drawstyle=‘steps’
,有五种方式{‘default’,‘steps’,‘steps-pre’,‘steps-mid’,‘steps-post’}
常用的图像设置命令
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode-minus']=False #用来正常显示负号
plt.title() #标题
plt.xlim() #括号里显示上下限,相当于放大
plt.ylim()
plt.xlabel() #x,y轴的名称,字符串
plt.ylabel()
plt.grid() #加网格线 linestyle简写ls,color简写c,宽度简写ld
plt.axhline() #绘制平行于x轴的水平参考线
plt.axvline() #绘制平行于y轴的水平参考线
plt.axhspan() #绘制垂直于y轴的水平区域 颜色要用facecolor
plt.axvspan() #绘制垂直于x轴的参考区域
plt.legend() #标示不同图形的文本标签图例
legend有许多参数,我们先学习三个分别是loc、edgecolor、facecolor
loc是图例的位置,支持整数和字符串
edgecolor是图例外框颜色
facecolor是图例框内填充颜色
plt.xticks() #设置x轴的标签名称
plt.yticks() #设置y轴的标签名称
plt.text() #添加图形内容细节的无指向型注释文本
plt.text(x,y,string,fontsize,verticalalignment,horizontalalignment,kwargs**)
x,y:表示坐标值上的值
string:表示说明文字
verticalalignment:垂直对齐方式 center top bottom baseline
horizontalalignment:水平对齐方式 center right left
plt.annotate() #添加图形内容细节的指向型注释文本
annotate详细的应用介绍
plt常见的二维图形绘制命令
plt.bar #柱状图
plt.barh #条形图
plt.hist #直方图
plt.pie #饼图
plt.polar #极线图
plt.scatter #散点图或气泡图
plt.stem #棉棒图
plt.boxplot #箱线图
plt.errorbar #误差棒图
plt其他函数命令
plt.gca() get current axes plt.plot()实际上通过该函数获得当前的axes对象ax,然后再调用ax.plot方法实现真正的绘图
plt.figure()创建figure对象
figure对象是后续绘图操作的总容器
figure(num=用的第几张纸或者纸的名字——默认顺着画,figsize=用元组表示纸的大小,dpi=分辨率默认为100,facecolor=作用的是纸的颜色,edgecolor=边缘颜色图形边框颜色,framon=False是否绘制图形外框架,clear=False图形已存在时是否清除原有图像)
plt.savefig(“路径eg:D:\XXX.jpg”)
plt.gcf() get current figure
举个栗子
import numpy as np
x = np.linspace(0,10,10)
y = np.cos(x)
y1 = np.sin(x)
plt.plot(x,y,'b*--',label='y=cos(x)')
plt.plot(x,y1,'c*--',label='y1=sin(x)')
plt.title('have a try')
plt.legend() #在plot中有lable时直接传入legend才有活干
plt.grid(ls=':',c='r')
plt.axhspan(0.55,0.75,facecolor='yellow',alpha=0.6)
plt.axvline(7,c='r',lw=1.5,ls='-.')
plt.annotate('the biggest',xy=(0,1),xytext=(0.8,1),arrowprops=dict(arrowstyle='->'))
#生成多序列条形图
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
index = np.arange(5)
data1 = [3,4,6,8,9]
data2 = [11,23,6,5,1]
data3 = [12,6,21,8,26]
a = 0.3
plt.title('multi bar chart')
plt.bar(index,data1,a,color='orange',label='a')
plt.bar(index+a,data2,a,color='y',label='b')
plt.bar(index+2*a,data3,a,color='g',label='c')
plt.legend(loc=2)
plt.show()