如何在子图中使用不同的比例
How to use different scales in a subplot
我有 6 个图的多重图。我想在第六个中使用两个不同的音阶。请问怎么做呢?我尝试了评论部分,结果只有一个情节。
import matplotlib.pyplot as plt
x_values1=[1,2,3,4,5]
y_values1=[1,2,2,4,1]
x_values3=[150,200,250,300,350]
y_values3=[10,20,30,40,50]
fig, ((ax1, ax2, ax3), (ax4, ax5, ax6)) = plt.subplots(nrows=2, ncols=3, figsize=(10,6))
'''
ax6=fig.add_subplot(111, label="1")
ax7=fig.add_subplot(111, label="2", frame_on=False)
ax6.plot(x_values1, y_values1)
ax7.plot(x_values3, y_values3)
'''
plt.show()
参考代码
import matplotlib.pyplot as plt
x_values1=[1,2,3,4,5]
y_values1=[12,21,42,54,-1]
x_values2=[0.1,0.2,0.3,0.4,0.5]
y_values2=[5000,3000,4000,1000,2000]
x_values3=[150,200,250,300,350]
y_values3=[30,20,50,40,10]
fig, ((ax1, ax2, ax3), (ax4, ax5, ax6)) = plt.subplots(nrows=2, ncols=3, figsize=(10,6))
ax1.plot(x_values1, y_values1)
parax6 = ax6.twinx().twiny()
ax6.plot(x_values2, y_values2, c="r", label="red")
parax6.plot(x_values3, y_values3, c="b", label="blue")
ax6.legend(loc="lower left")
parax6.legend(loc="upper right")
parax6.set_xticks([])
parax6.set_yticks([])
for side in ['top','right','left','bottom']:
parax6.spines[side].set_visible(False)
ax6.set_xticks([])
ax6.set_yticks([])
for side in ['top','right']:
ax6.spines[side].set_visible(False)
plt.tight_layout()
plt.show()
如何让上轴和右轴不可见?
尽管您的问题有些含糊不清,但我假设您想在子图中为 x- 和 y-axis 创建寄生轴。
import matplotlib.pyplot as plt
x_values1=[1,2,3,4,5]
y_values1=[12,21,42,54,-1]
x_values2=[0.1,0.2,0.3,0.4,0.5]
y_values2=[5000,3000,4000,1000,2000]
x_values3=[150,200,250,300,350]
y_values3=[30,20,50,40,10]
fig, ((ax1, ax2, ax3), (ax4, ax5, ax6)) = plt.subplots(nrows=2, ncols=3, figsize=(10,6))
ax1.plot(x_values1, y_values1)
parax6 = ax6.twinx().twiny()
ax6.plot(x_values2, y_values2, c="r", label="red")
parax6.plot(x_values3, y_values3, c="b", label="blue")
ax6.legend(loc="lower left")
parax6.legend(loc="upper right")
plt.tight_layout()
plt.show()
输出:
如果您想更好地控制在这种方法中链接的 axes
属性,请单独定义 axes
。
...
ax1.plot(x_values1, y_values1)
parax6x = ax6.twinx()
parax6=parax6x.twiny()
ax6.plot(x_values2, y_values2, c="r", label="red")
parax6.plot(x_values3, y_values3, c="b", label="blue")
parax6.set_axis_off()
parax6x.set_axis_off()
...
输出:
我有 6 个图的多重图。我想在第六个中使用两个不同的音阶。请问怎么做呢?我尝试了评论部分,结果只有一个情节。
import matplotlib.pyplot as plt
x_values1=[1,2,3,4,5]
y_values1=[1,2,2,4,1]
x_values3=[150,200,250,300,350]
y_values3=[10,20,30,40,50]
fig, ((ax1, ax2, ax3), (ax4, ax5, ax6)) = plt.subplots(nrows=2, ncols=3, figsize=(10,6))
'''
ax6=fig.add_subplot(111, label="1")
ax7=fig.add_subplot(111, label="2", frame_on=False)
ax6.plot(x_values1, y_values1)
ax7.plot(x_values3, y_values3)
'''
plt.show()
参考代码
import matplotlib.pyplot as plt
x_values1=[1,2,3,4,5]
y_values1=[12,21,42,54,-1]
x_values2=[0.1,0.2,0.3,0.4,0.5]
y_values2=[5000,3000,4000,1000,2000]
x_values3=[150,200,250,300,350]
y_values3=[30,20,50,40,10]
fig, ((ax1, ax2, ax3), (ax4, ax5, ax6)) = plt.subplots(nrows=2, ncols=3, figsize=(10,6))
ax1.plot(x_values1, y_values1)
parax6 = ax6.twinx().twiny()
ax6.plot(x_values2, y_values2, c="r", label="red")
parax6.plot(x_values3, y_values3, c="b", label="blue")
ax6.legend(loc="lower left")
parax6.legend(loc="upper right")
parax6.set_xticks([])
parax6.set_yticks([])
for side in ['top','right','left','bottom']:
parax6.spines[side].set_visible(False)
ax6.set_xticks([])
ax6.set_yticks([])
for side in ['top','right']:
ax6.spines[side].set_visible(False)
plt.tight_layout()
plt.show()
如何让上轴和右轴不可见?
尽管您的问题有些含糊不清,但我假设您想在子图中为 x- 和 y-axis 创建寄生轴。
import matplotlib.pyplot as plt
x_values1=[1,2,3,4,5]
y_values1=[12,21,42,54,-1]
x_values2=[0.1,0.2,0.3,0.4,0.5]
y_values2=[5000,3000,4000,1000,2000]
x_values3=[150,200,250,300,350]
y_values3=[30,20,50,40,10]
fig, ((ax1, ax2, ax3), (ax4, ax5, ax6)) = plt.subplots(nrows=2, ncols=3, figsize=(10,6))
ax1.plot(x_values1, y_values1)
parax6 = ax6.twinx().twiny()
ax6.plot(x_values2, y_values2, c="r", label="red")
parax6.plot(x_values3, y_values3, c="b", label="blue")
ax6.legend(loc="lower left")
parax6.legend(loc="upper right")
plt.tight_layout()
plt.show()
输出:
如果您想更好地控制在这种方法中链接的 axes
属性,请单独定义 axes
。
...
ax1.plot(x_values1, y_values1)
parax6x = ax6.twinx()
parax6=parax6x.twiny()
ax6.plot(x_values2, y_values2, c="r", label="red")
parax6.plot(x_values3, y_values3, c="b", label="blue")
parax6.set_axis_off()
parax6x.set_axis_off()
...
输出: