matplotlib设置双y轴时最后一个柱形只显示一半
要设置双y轴时最后一个柱形只显示一半,可以使用ax.twiny()方法创建一个新的坐标轴对象,并将其位置设置在最后一个柱形的位置。然后,可以设置该坐标轴对象的范围为一半的范围。以下是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.arange(5)
y1 = np.random.randint(1, 10, size=5)
y2 = np.random.randint(1, 10, size=5)
# 创建图形和坐标轴对象
fig, ax1 = plt.subplots()
ax2 = ax1.twiny()
# 绘制柱形图
bar_width = 0.4
ax1.bar(x, y1, width=bar_width, color='blue', alpha=0.7)
ax2.bar(x + bar_width, y2, width=bar_width, color='green', alpha=0.7)
# 设置y轴标签和范围
ax1.set_ylabel('y1')
ax1.set_ylim(0, max(y1) + 1)
ax2.set_ylabel('y2')
ax2.set_ylim(0, max(y2) + 1)
# 将第二个坐标轴对象的位置设置在最后一个柱形的位置
ax2.set_position([ax1.get_position().x1 - bar_width, ax1.get_position().y0, bar_width, ax1.get_position().height])
# 显示图形
plt.show()
运行上述代码将显示一个双y轴的柱形图,其中最后一个柱形只显示一半
原文地址: https://www.cveoy.top/t/topic/irHc 著作权归作者所有。请勿转载和采集!