我想在一个图中有两行(或更好的散点图)。
次要Y线应该是对数刻度。用python matplotlib怎么做?
答案 0 :(得分:3)
您可以使用ax2 = ax.twinx()
创建第二个y轴。然后,您可以像评论中指出的那样,将第二个轴设置为对数刻度。
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=(5,3))
ax = fig.add_subplot(111)
ax2 = ax.twinx()
x = np.random.rand(10)
y = np.random.rand(10)
y2 = np.random.randint(1,10000, size=10)
l1 = ax.scatter(x,y, c="b", label="lin")
l2 = ax2.scatter(x,y2, c="r", label="log")
ax2.set_yscale("log")
ax2.legend(handles=[l1, l2])
ax.set_ylabel("Linear axis")
ax2.set_ylabel("Logarithmic axis")
plt.tight_layout()
plt.show()