原图
论文doi为:https://doi.org/10.1016/j.rse.2023.113650
图片为多个城市多年的平均气温和年总降水量的频率分布直方图
倒立直方图
若需要绘制单个倒立直方图,直接使用ax.invert_yaxis()将柱体反转,注意需要将x轴的刻度和标签也显示在上方
代码如下:
import matplotlib.pyplot as plt
# 样本数据
categories = ['Category 1', 'Category 2', 'Category 3', 'Category 4', 'Category 5']
values = [15, 24, 10, 30, 22]
# 创建一个新的Figure,并定义图形大小
fig, ax = plt.subplots(figsize=(6, 6))
# 绘制垂直柱状图
ax.bar(categories, values, color='#68b4ea',edgecolor='black')
# 反转柱体
ax.invert_yaxis()
# 设置x轴标签和刻度在上方
ax.xaxis.tick_top()
ax.xaxis.set_label_position('top')
# 设置标题和标签
# plt.title('柱状图示例')
plt.xlabel('categorization')
plt.ylabel('value')
# 显示柱状图
plt.show()
效果图为
双x轴双y轴频率分布直方图
import matplotlib.pyplot as plt
import numpy as np
# 生成一些示例数据
temperature_data = np.random.normal(20, 5, 100)
precipitation_data = np.random.exponential(500, 100)
# 设置全局的字体大小和样式
plt.rcParams["font.size"] = 14
plt.rcParams["font.family"] = "Times New Roman"
# # 创建一个图形和第一个子图
fig, ax1 = plt.subplots()
#定义温度
col_pre='#68b4ea'#降水柱体颜色
col_tem='#e0b996'#温度柱体颜色
col_pre1='#2a5587'#降水字体颜色
col_tem1='#964022'#温度字体颜色
# 绘制年平均气温的频率分布图
ax1.hist(temperature_data, color=col_tem,edgecolor='black', alpha=0.7, bins=20,width=0.9)#bins为柱体数量,width为柱体之间的距离
ax1.set_xlabel('Temperature (°C)', color=col_tem1)#设置x标签
ax1.set_ylabel('Frequency', color=col_tem1)#设置y标签
ax1.tick_params(labelcolor=col_tem1)#设置刻度字体颜色
ax1.set_ylim(0, 30) # 这里设置Y轴的刻度范围
# 创建第二个Y轴用于年总降水量
ax2 = ax1.twinx()
ax2.set_ylabel('Frequency (%)', color=col_pre1)
ax2.tick_params(labelcolor=col_pre1)#设置刻度字体颜色
ax2.set_ylim(0, 30)#设置y轴刻度
ax2.invert_yaxis()# 反转柱体
# 创建第二个X轴,专用于年总降水量
ax2_x = ax2.twiny()
ax2_x.hist(precipitation_data,color=col_pre,edgecolor='black', alpha=0.7, bins=20, width=100)
ax2_x.set_xlabel('Precipitation (mm)', color=col_pre1)#设置x标签
ax2_x.tick_params(labelcolor=col_pre1)#设置刻度字体颜色
# 添加标题
# plt.title('Frequency Distribution of Temperature and Precipitation')
# 保存图片到本地
plt.savefig("倒立柱状图.png")
plt.show()
效果展示
往期回顾
在我的公众号(同名)中会持续更新好看的SCI论文图片的代码复刻推文,往期图片如下,欢迎大家互相交流
感谢大家花时间来阅读本文作者水平有限,有失误之处请大家斧正!