回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>这个问题与我之前问的问题“<a href="https://stackoverflow.com/questions/24943991/matplotlib-change-grid-interval-and-specify-tick-labels">matplotlib: Change grid interval and specify tick labels</a>”有关,但现在我想更改x和y轴的比例。当我设置x轴和y轴的范围,然后指定主刻度和次刻度的间隔时,它会强制x轴和y轴相同。</p>
<p>这是我的密码。</p>
<pre><code>import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
for key, value in sorted(data.items()):
x = value[0][2]
y = value[0][3]
count = value[0][4]
ax.annotate(count, xy = (x, y), size = 3)
plt.suptitle('Number of counts', fontsize = 12)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_aspect('equal')
# I want max x axis to be 500
ax.set_xlim(0, 501)
# I want max y axis to be 300
ax.set_ylim(0, 301)
# I want major ticks to be every 20
major_ticks = np.arange(0, 501, 20)
# I want minor ticks to be every 5
minor_ticks = np.arange(0, 501, 5)
# If I do minor_ticks = np.arange(0, 301, 5), I will not get minor ticks for the entire plot
# Specify tick label size
ax.tick_params(axis = 'both', which = 'major', labelsize = 4)
ax.tick_params(axis = 'both', which = 'minor', labelsize = 0)
# Suppress minor tick labels
ax.set_xticks(major_ticks)
ax.set_xticks(minor_ticks, minor = True)
ax.set_yticks(major_ticks)
ax.set_yticks(minor_ticks, minor = True)
# Set both ticks to be outside
ax.tick_params(which = 'both', direction = 'out')
# Specify different settings for major and minor grids
ax.grid(which = 'minor', alpha = 0.3)
ax.grid(which = 'major', alpha = 0.7)
filename = 'C:\Users\Owl\Desktop\Plot.png'
plt.savefig(filename, dpi = 150)
plt.close()
</code></pre>
<p>这就是我得到的。</p>
<p><img src="https://i.stack.imgur.com/yFP67.png" alt="Output"/></p>
<p>我怎样才能得到x和y轴的不同范围,并且仍然有这样的主刻度和副刻度?我可能遗漏了一些很简单的东西,但如果有人能指出,我非常感谢!!</p>