python的matlablib画图库
1、plt.plot 、plt.subplot、plt.subplots关系与区别
plt.plot
使用命令**fig = plt.figure()**时,有两个参数,figsize和dpi,figsize控制整个图大小,dpi是t图像分辨率,即图形每英寸的点数。
例如:fig = plt.figure(figsize=(20,20),dpi=400)
# 初始化一张画布20*20,长度单位英寸
,画布分辨率:400。
plt.plot() #直接在一张大的画布中画图,相当于获取当前活跃的的axes然后在上面作图
fig.add_subplot
ax = fig.add_subplot()是配合 plt.figure()使用的,先使用 plt.figure()创建画图,然后再画布中添加一个子区域axes。
例如:
fig = plt.figure(figsize=(20,20),dpi=400)
ax = fig.add_subplot(2,2,1) #表示创建了2 × 2 的区域,选中第一个区域返回
ax.plot() #获取当前活跃的的axes然后在上面作图
#或者如下也可以
plt.plot() #获取当前活跃的的axes然后在上面作图
plt.subplot
ax = plt.subplot(221)或者plt.subplot(2,2,0) #和fig.add_subplot作用相同,只是直接调用plt.subplot,会获取当前活跃的figure对象,然后添加子区域
ax.plot() #在该活跃子区域中画图,相当于获取当前的axes然后在上面作图
fig = plt.figure(figsize=(20,20),dpi=400)
plt.subplot(221)
plt.plot() #获取当前活跃的的axes然后在上面作图
plt.subplots
fig, ax = plt.subplots(2, 2, figsize=(20,20),dpi=400) # 返回一个 Figure实例fig 和一个 AxesSubplot实例ax 。fig代表整个图像,ax代表坐标轴和画的图,ax是保存 AxesSubplot实例 的 ndarray数组,通过下标获取需要的子区域。
ax[0][0].plot() # 在第0行的第0个子区域画图
subplot和subplots都可以实现画子图功能,只不过subplots帮我们把画板规划好了,返回一个坐标数组对象,而subplot每次只能返回一个坐标对象,subplots还可以直接指定画板的大小。
2、ax绘图相关的知识点
通过获取到坐标轴,控制坐标轴显示
1)去边框
axes.Spines可用于设置每个轴的显示与否(set_visible),颜色(set_color),线宽(set_linewidth()),位置(set_position()),
# 去掉上、下、左、右边框
ax.spines['top'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['right'].set_visible(False)
2)去掉x、y坐标轴刻度
ax.set_xticks([])
ax.set_yticks([])
3)设置标题、x和y轴标题
ax.set_title("图标题")
ax.set_xlabel("length")
ax.set_ylabel("width")
4)设置x、y轴表示范围
ax.set_xlim(0,10,1)
ax.set_ylim(0,10,1)
3、柱状图plt.bar()
画柱状图修改横坐标为自己的字符显示:
#数据
N = 5
y = [20, 10, 30, 25, 15]
x = np.arange(N)
#添加地名坐标
str1 = ("北京", "上海", "武汉", "深圳", "重庆")
#绘图 x x轴, height 高度, 默认:color="blue", width=0.8
p1 = plt.bar(x, height=y, width=0.5, label="城市指标", tick_label=str1)```
#添加数据标签
for a, b in zip(x, y):
plt.text(a, b + 0.05, '%.0f' % b, ha='center', va='bottom', fontsize=10)
同样也可以通过plt.xticks()获取坐标轴修改横坐标标签:
#indices1代表提前排好序的坐标索引
indices1 = np.argsort(tree_f)[::-1]
#排序列名,作为横坐标显示的列表
raw_columns_sorted = [raw_columns[i] for i in tree_sorted]
#画柱状图
bar = plt.bar(range(0,46,1 ), tree_f[indices1],color = 'blue' ,width=4)
#原来横坐标range(0,46 ,1),修改为raw_columns_sorted序列
plt.xticks(range(0,46 ,1),raw_columns_sorted,rotation=90)
参考:
柱状图bar:https://www.cnblogs.com/zyg123/p/10504637.html
4、画图颜色、形状
参考:
https://www.cnblogs.com/darkknightzh/p/6117528.html
参考:
https://blog.csdn.net/zuiyishihefang/article/details/113765016
https://blog.csdn.net/sinat_32570141/article/details/113848009