在 PyPlot 中设置自动刻度间隔
Setting an automatic tick interval in PyPlot
当我用 pyplot 画图时,它会自动生成 nice widely space 刻度线和标签。有没有一种简单的方法来调整自动生成的标记之间的间距?例如,在默认刻度位置为 [2,4,6]
的图中,刻度位于 [2,3,4,5,6]
.
位置
我知道可以用xticks()
和yticks()
设置标记位置和标签,但我需要先知道取值范围,不同的数据,我需要调整他们手动。
有一大堆刻度定位器和格式化程序,具体取决于您想要标准化的内容。这是线性间距刻度的示例,设置为与默认值进行比较:
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)
通常,请参阅 http://matplotlib.org/api/ticker_api.html?highlight=fixedlocator#module-matplotlib.ticker 和示例图库。
当我用 pyplot 画图时,它会自动生成 nice widely space 刻度线和标签。有没有一种简单的方法来调整自动生成的标记之间的间距?例如,在默认刻度位置为 [2,4,6]
的图中,刻度位于 [2,3,4,5,6]
.
我知道可以用xticks()
和yticks()
设置标记位置和标签,但我需要先知道取值范围,不同的数据,我需要调整他们手动。
有一大堆刻度定位器和格式化程序,具体取决于您想要标准化的内容。这是线性间距刻度的示例,设置为与默认值进行比较:
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)