假设我有一个图表,一个有25个刻度的轴,我想让每五个刻度(0,5,10,15,20,25)比其他刻度更大,以便更容易阅读图形。 (这些刻度上已有数字标签,其他刻度上没有标签,但阅读仍然相当不舒服......)甚至可能吗?如果我有27个滴答而不是25个怎么办?
E:更多信息:
我实际上正在编辑一个由经验丰富的程序员制作的评论太多的评论(我不是很有经验)。程序根据给定的数据绘制一个颜色图(暗示坐标点(x,y)的应变)......呃,我不得不承认我不理解代码中所说的全部内容。但是,有一个问题应变场的部分被绘制出来。
# Strain field on background
fig = mpl.figure(1,figsize=(6,5),facecolor='w',edgecolor='k')
mpl.clf()
ax1 = fig.add_axes([0.5*(1-0.50*ratio)+0.05, 0.45, 0.50*ratio, 0.50])
mpl.contourf(strainY.T * 100,50) # Into percents
mpl.xlim(0,x-1)
mpl.ylim(0,y-1)
mpl.gca().invert_yaxis()
yt = np.linspace(0,y-1,len(vHeight)+1)
locs, labels = mpl.yticks(yt, vHeight, fontsize=9)
xt = np.linspace(0,x-1,len(vWidth)+1)
locs, labels = mpl.xticks(xt, vWidth, fontsize=9)
yt和xt表示用于放置刻度线的特殊向量。由于一些令人讨厌的缩放事物(从像素(?)到其他测量)和不同长度的轴,它们需要一些工作......无论如何,结果是2D应变图,其中是恒定空间的刻度......
询问更多是否需要更多信息,我很困惑,我不知道哪些信息是必要的。
...我在下面的评论和文档中理解,contourf()对应plot()。那么set_major_locator应该有用吗?虽然我记得我尝试了一次,但结果并不顺利......不过我可以在那个剧本的副本中再试一次。
答案 0 :(得分:2)
您在寻找主要和次要的蜱虫吗?我假设您正在寻找以下示例:
修改强> 我已经调整了你的例子,所以它可以运行。下次,请发布一个其他人可以复制/粘贴/执行的最小示例。
从上面引用的网站上我复制了轴格式。如果我正确理解您的问题,您希望在任意位置设置刻度线。为此,我们可以将FixedLocator与列表一起使用。如果刻度之间有恒定的间隔,则使用MultipleLocator。 matplotlib.ticker中还有很多其他定位器...
你应该能够运行下面的代码,并希望得到你想要的! : - )
import matplotlib.pyplot as mpl
import numpy as np
from matplotlib.ticker import MultipleLocator, FormatStrFormatter, FixedLocator
majorLocator = FixedLocator([0,15,19,40,60,99])
majorFormatter = FormatStrFormatter('%d')
minorLocator = MultipleLocator(5)
ratio = 1
strainY = np.zeros((100,100))
x = 100
y = 100
vHeight = np.arange(0,100,5)
vWidth = np.arange(0,100,5)
# Strain field on background
fig = mpl.figure(1,figsize=(6,5),facecolor='w',edgecolor='k')
mpl.clf()
ax1 = fig.add_axes([0.5*(1-0.50*ratio)+0.05, 0.45, 0.50*ratio, 0.50])
mpl.contourf(strainY.T * 100,50) # Into percents
mpl.xlim(0,x-1)
mpl.ylim(0,y-1)
mpl.gca().invert_yaxis()
yt = np.linspace(0,y-1,len(vHeight)+1)
locs, labels = mpl.yticks(yt, vHeight, fontsize=9)
xt = np.linspace(0,x-1,len(vWidth)+1)
locs, labels = mpl.xticks(xt, vWidth, fontsize=9)
ax1.xaxis.set_major_locator(majorLocator)
ax1.xaxis.set_major_formatter(majorFormatter)
ax1.xaxis.set_minor_locator(minorLocator)
mpl.show()
如果这不是您所需要的,您能否将您的示例代码更改为运行的代码,并且可能会发布您需要的草图?