擅长:python、mysql、java
<p>你可以用双轴。想法如下:</p>
<ul>
<li>创建一个双轴并在两个轴上绘制相同的数据。这将确保两个y轴上的记号位置是轴限制相同的。在</li>
<li>获取字符串形式的刻度标签,将它们转换为整数,并使用<code>np.exp()</code>将它们四舍五入到小数点后2位。在</li>
<li>将新标签指定给右侧y轴</li>
<li>您还需要确保两个轴的刻度数和范围与@ImportanceOfBeingEarnest在下面的注释中建议的一样</li>
</ul>
<hr/>
<pre><code>import numpy as np; np.random.seed(123)
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
q = np.random.rand(100,)
y = np.log(q)
x4 = np.random.rand(100,)
ax.scatter(x4, y)
ax.set_xlabel('x4', fontsize=16)
ax.set_ylabel('y', fontsize=16)
ax2 = ax.twinx()
ax2.scatter(x4, y)
ax2.set_yticks(ax.get_yticks())
ax2.set_ylim(ax.get_ylim())
fig.canvas.draw()
labels = [int(i.get_text()[1:-1]) for i in ax2.get_yticklabels()]
labels_new = [np.round(np.exp(i), 2) for i in labels]
ax2.set_yticklabels(labels_new);
ax2.set_ylabel('q', fontsize=16)
plt.show()
</code></pre>
<p><a href="https://i.stack.imgur.com/Qret2.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Qret2.png" alt="enter image description here"/></a></p>