在PyPlot中设置自动刻度间隔

dre*_*cko 2 python matplotlib

当我用pyplot绘制图时,它会自动生成漂亮的宽刻度标记和标签。有没有简单的方法可以调整自动生成的标记之间的间距?例如,在默认刻度位置为的图中[2,4,6],在position处有刻度[2,3,4,5,6]

我知道我可以使用xticks()和设置标记位置和标签yticks(),但是我需要首先知道值的范围,对于不同的数据,我需要手动调整它们。

cph*_*wis 5

根据您要标准化的内容,有一堆刻度线定位器和格式化程序。这是线性间隔刻度的示例,用于与默认刻度进行比较:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

df = pd.DataFrame((np.random.random((2,30)).T),columns=['A','B'])
fig, axs = plt.subplots(1,2)
axs[0].scatter(df.A, df.B)
axs[0].set_title('Default y-locator')
from matplotlib.ticker import LinearLocator
axs[1].get_yaxis().set_major_locator(LinearLocator(numticks=12))
axs[1].set_title('12 evenly spaced y-ticks')
axs[1].scatter(df.A, df.B)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 通常,请参见http://matplotlib.org/api/ticker_api.html?highlight=fixedlocator#module-matplotlib.ticker和示例库。