python的matlablib画图库------画布fig和坐标轴ax

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,101)
ax.set_ylim(0,101)

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

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值