How to properly display sufficient tick markers us

2019-09-26 13:53发布

运行下面的代码后,将轴的刻度标记的所有相互重叠。 这时,每个标记仍然可以通过有放大时弹出良好的分辨率plt.show() 。 然而,保存图plt.savefig('fig.png')将失去其分辨率。 可这还可以优化?

from matplotlib.ticker import FuncFormatter
from matplotlib.pyplot import show
import matplotlib.pyplot as plt
import numpy as np

a=np.random.random((1000,1000))

# create scaled formatters / for Y with Atom prefix
formatterY = FuncFormatter(lambda y, pos: 'Atom {0:g}'.format(y))
formatterX = FuncFormatter(lambda x, pos: '{0:g}'.format(x))

# apply formatters 
fig, ax = plt.subplots()
ax.yaxis.set_major_formatter(formatterY)
ax.xaxis.set_major_formatter(formatterX)

plt.imshow(a, cmap='Reds', interpolation='nearest')

# create labels
plt.xlabel('nanometer')
plt.ylabel('measure')
plt.xticks(list(range(0, 1001,10)))
plt.yticks(list(range(0, 1001,10)))

plt.savefig('fig.png',bbox_inches='tight')
plt.show()

Answer 1:

我想你可以通过设置数字,如大小解决它

fig, ax = plt.subplots()
fig.set_size_inches(15., 15.)

正如评论所指出的@PatrickArtner,然后你可以也避免X-蜱的重叠由

plt.xticks(list(range(0, 1001, 10)), rotation=90)

代替

plt.xticks(list(range(0, 1001,10)))

代码的其余部分是完全不变; 那么输出看起来是合理的(但是是太大,在这里上传)。



文章来源: How to properly display sufficient tick markers using plt.savefig?