Matplotlib 学习
Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形
Seaborn常见绘图总结
1.基础概念整合
-
一般
import matplotlib.pyplot as plt
-
自定义线条: 线条颜色点型类型大全
可以不添加标签,直接写入' '
内,并且颜色和线条类型能连写 -
可以通过逗号在一个plot填入多条线,或者多个plot画多个线在同一个图
-
基本画图通过
plt.plot(x,y)
分别画x轴和y轴的数值,一般用np数组 -
为了防止图像挡住坐标轴数据可以在plot中加入参数:
zorder = 1
2.子图和标注
-
子图声明
plt.subplot(xyz)
:声明后再plot图,意思为接下来我画的是x行y列的图,其中下一个plot的图是第z张图 -
Axis设置:
-
x/y轴取值范围:
plt.xlim((min,max))
:y轴改为y即可,使用元组形式表示区间,翻转x轴的大小方向,让alpha从大到小显示ax.set_xlim(ax.get_xlim()[::-1])
-
x/y轴刻度设置:设置精度:
plt.xticks(np.linspace(x,y,z))
文字型刻度:plt.yticks([0,1,2], ['bad','normal',r'$good$'])
:如果想用好看的数学型字体就按最后一个good的格式去书写:latex语法
若需要消除刻度,括号填入一个空元组()
即可 -
设置四轴参数:获取四个轴:
ax = plt.gca()
: gca:get current axis
轴体消失:ax.spine.['top'].set_color('none')
-
设置轴起点位置:
ax.spine.['left'].set_position(('data','0')
:这里的0指的是x=0,设置x轴则代表y的值
-
-
标注:
-
x轴/y轴:
plt.xlabel('xxx')
:可添加相应注释,y轴同理,还可添加属性字体大小:fontsize = xxx
-
标题:
plt.title('xxx')
-
对坐标添加注释:
plt.text(x,y,'XXXX')
-
转化为网格图:
plt.grid(True)
-
标记一个点:
plt.scatter(x0,y0,s=50,color='black')
:s代表size。x0和y0可以提前赋值 -
画一条连接线:
plt.plot([x1,x2],[y1,y2],'k--',lw=2.5)
:lw为linewitdth
-
-
legend图例:
- plot一条线的时候可以加入参数:
label = xxx
:然后在show之前写上plt.legend
即可生成对应图例 -
调整位置可以在括号加入参数
loc = best
:或者其他位置,best会在空白处填充 -
箭头注解
plt.annotate('XXX',xy=(x1,y1),xytext=(x2,y2),arrowprops=dict(facecolor='black',shrink=0.05)
其中shrink指箭头尾部粗细长度属性,xytext是注释位置。如果想要对箭头头部进行属性修改,可以写入headlength=xxx
等属性去修改
3.风格设置
-
风格查询:
plt.style.available()
-
应用风格:
plt.style.use('XXXX')
后再画图
4.figure图像
-
想要画多个figure基本方法:每次声明一个
plt.figure()
之后,后面的参数则是这个figure,如果画第二个声明第二次即可,默认按顺序来,也可以在括号内填入num = x
对编号命名 -
可以添加参数
figuresize(x,y)
对窗口大小设置
5.散点图
-
画图只需将
plt.plot()
换为plt.scatter()
-
补充:随机颜色
T = np.arctan2(Y,X)
可以根据x轴y轴数据随机生成正态分布的颜色数据,plot颜色参数填入即可应用
6.条形图
-
基础条形图绘制
plt、fig、axes、axis的含义
基础图直接用plt.bar()传参绘制,以下是一些细节设置
* x轴和y轴数据设置
x = np.arange(5)
y = np.random.randint(-5,5,5)
- 图的基本绘制参数
fig.axes = plt.subplots(ncols = 2) #幕布为两列
v_bars = axes[0].bar(x,y,color='red') #竖着画
h_bars = axes[1].barh(x,y,color='red') #横着画
- 添加有色线
axes[0].axhline(0,color='black',linewidth=2) #竖条形图,因此为x轴横着添加一条线
axes[1].axvline(0,color='black',linewidth=2) #横条形图,因此为y轴竖着添加一条线
- 不同界限的图填充不同颜色:利用python循环遍历
fig.ax = plt.subplots()
v_bars = ax.bar(x,y,color='lightblue')
for bar, height in zip(v_bars, v):
if height < 0:
bar.set(edgecolor = 'darkred', color = 'green', linewidth = 3)
plt.show()
- 条形图中设置
stacked=True
即可为DataFrame生成堆积柱状图,这样每行的值就会被堆积在一起
7.等高线图
- 高度生成函数
def f(x,y):
return (1 - x / x**5 + y**3) * np.exp(-x**2 - y**2)
- 网格绘制
n = 256
x = np.linspace(-3,3,n)
y = np.linspace(-3,3,n)
X, Y = np.meshgrid(x,y)
#根据输入的参数生成二维的数组列表
-
划分高度区域
plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap='hot')
:8代表10个区域,cmap为色系 -
绘制等高线
C = plt.contour(X,Y,f(X,Y),8,c='black',linewidths=.5)
-
添加标注
plt.clabel(C, inline=Ture,fontsize=10)
8.image图片
plt.imshow()
- 色度表
plt.colorbar()