Python 柱状图 横坐标 名字_Python气象绘图教程(四)

本节提要:回顾复习,新的调整命令。

一、回顾复习

  1. 前面讲到Python库包的下载与安装,推荐使用conda命令进行安装,通过conda list查看当前已经安装好的库包及版本。

  2. 画图步骤:①import       ###引入库包###

                     ②fig=plt.figure()   ###准备画布###

                     ③读取数据

                     ④ax=fig.add_subplot()   ###添加作图区###

                     ⑤绘制图形

                     ⑥plt.show()   ###展示图形###

  3. 画布figure及其参数、绘图区axes、多子图的绘制命令(subplots)。

  4. 常用的折线图plot的基础参数(linestyle、linewidth、color、alpha、marker)

  5. 一个解决因为单位不一致导致出图畸形的小命令twin。

二、新的内容

今天主要讲解坐标轴网格线和标题、图例、合并两幅子图的横坐标并取消空白:

A、坐标轴在不设置时,会自动根据数据的大小进行最合适的展示(当然只是电脑认为最合适的),但没有坐标轴的名字,大多数时候需要定制坐标轴。

定制坐标轴名,通过xlabel('你需要设置的内容')或者ylabel('你需要设置的内容')进行设置;定制标题,可以通过title('你需要添加的标题')。下面这个小程序讲解:
fig=plt.figure(figsize=(2,2))fig,ax=plt.subplots(dpi=200)ax.plot(x,tem,c='k',lw=1,ls='-',marker='d')

6d8191e92e3eff8b90faff2e117e7952.png

这是一张素图,没有任何设置,是电脑判定的最佳展示,现在通过下面语句定制化出图:
ax.set_title('实验气温图')ax.set_xlabel('时间')ax.set_ylabel('气温 ℃')

c4d1d0e0709df16c234445f18f9ceb6b.png

这样就进行了一番简单的定制化。现在看来似乎x,y轴名称字号偏小,可以通过字典参数方式进行调节:
font={'size':20,'color':'red'}ax.set_xlabel('时间',fontdict=font)ax.set_ylabel('气温 ℃',fontdict=font)

d0c2026c77264daeb66fb01b52d09fa9.png

在字典中存储需要修改的的参数名称和指定值大小,在这个图中,我将字号(size)修改为20,将颜色(color)修改为红色。当然,字典里还可以存放更多的参数,这里只修改了两种,剩下读者可自行探索。 另外,matplotlib中还可以显示网格线,命令为ax.grid()

f2d29da714b08f044c7be5ad1ece607a.png

grid()中还可以进行设置,比如开启虚线ax.grid(ls='--')

a236edd405657a180da32d17e313a1b2.png

还可以指定是否开启x,y轴网格线ax.grid(True,axis='y')

941d3b093010aa031c0f59aba2326c65.png

ax. grid( True, axis='x')

9b5e08e9a5ccf93054fc1a74f3378434.png

B、在昨天绘制的观测图中,出现了三种样式,为了区分识别他们,在图中添加了图例:

7e8b3aac669c159605e6a7aa7558c29d.png

plt.legend((line1,bar1,line2),('气温','降水量','气压'),loc='center left')

添加图例的命令是legend(),前面是图上的线条和柱形图的名称,后面是你指定的显示出来的名称,注意应当一一对应。

C、昨天讲解了如何在同一子图中合并横坐标轴,那用到了twin命令。今天将了解如何合并两幅子图的坐标轴,这幅图展示了去年月平均气温和累年月平均气温距平变化。
fig,((ax1),(ax2))=plt.subplots(2,1,figsize=(5,5),dpi=200,sharex='all')fig.subplots_adjust(hspace=0)line1,=ax1.plot(x,tem,color='k',lw=1.5,ls='--')bar1=ax2.bar(x,Anomaly,color=np.where(Anomaly>0,'red','b'))ax1.set_ylabel('月平均气温 ℃')ax2.set_ylabel('气温距平 ℃')ax2.set_xlabel('月份')ax2.set_xticks(x)plt.show()

注意第一排中的sharex='all'命令,这是令两幅子图共享x轴。而第二排中的命令,指令两个之间的空白等于0。

改动前(素图):

d2f8ac67a89fc8e7db8bc8c7e59c044d.png

定制化图表后:

812509a985624537b7a5c25cb6dc5d53.png

在绘制气温距平的柱状图时,如何使正负柱体的颜色不一致呢。numpy中提供了一个np.where(判定语句,符合判定语句返回值,不符合判定语句返回值)命令,如何理解这个命令,通过一个测试演示:

cd18359b5d8d4c184962dff8a13fbd7d.png

在本程序中,指令判断距平是否大于零,大于零返回“red”,否则返回“blue”。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值