Python - 修改调整大小事件的最佳滴答数

问题描述 投票:0回答:1

Matplotlib计算首次创建一个最佳数量的刻度和标签,以便标签字符串不会覆盖另一个刻度标签。是否可以在resize事件上最佳地修改此滴答数?如果数字大小增加,那么可能有机会获得更多的标记和标签。如果数字尺寸减小,则每当他们透支其他标签时,应减少刻度数。

python matplotlib
1个回答
1
投票

您可以使用resize_event来更改刻度数。此示例使用MaxNLocator但您可以使用不同的Locator。随着窗口宽度的增加,它会使得刻度数增加:

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(np.random.rand(100), 'o')

def onresize(event):
    bbox = fig.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
    width, height = bbox.width * fig.dpi, bbox.height * fig.dpi
    tick_step = 100
    n = width / tick_step
    ax.xaxis.set_major_locator(ticker.MaxNLocator(n))

fig.canvas.mpl_connect('resize_event', onresize)
plt.show()
© www.soinside.com 2019 - 2024. All rights reserved.