2024-04-24 17:28:38 发布
网友
我想将刻度之间的间距设置为自定义距离,而不是自动生成。我想得到这个图在y轴上的作用。https://pasteboard.co/H0XUbpq.jpg
我找到了如何设置自定义记号的方法,但是在轴上的间距仍然相同,然后大多数记号仍然彼此靠近。所以我希望刻度间隔不同于y轴上刻度之间的间隔,就像我链接到上面的图表一样。
可以为轴使用单独的函数格式化程序:
from matplotlib.ticker import FuncFormatter from matplotlib.pyplot import show import matplotlib.pyplot as plt import numpy as np a=np.random.random((100,100)) # create scaled formatters / for Y with Atom prefix formatterY = FuncFormatter(lambda y, pos: '{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) # create labels plt.xlabel('x label') plt.ylabel('y label') plt.xticks(list(range(0, 100,5))) plt.yticks(list(range(100, 0,-20))) plt.show()
独立地设计它们。看pylab_examples-可能会给你一个起点。
我认为你发布的图片是log plot in y axis。y轴上的每个刻度值都是较低的刻度值乘以2。在正常绘图中,它们的距离是不一样的,但在对数绘图中,它们的距离是一样的。
由于您没有数据,我将展示一个演示如何在y轴中使用日志图的玩具示例:
import matplotlib.pyplot as plt import matplotlib import numpy as np x = np.linspace(20, 51, 7) y1 = np.exp(x**0.2) y2 = np.exp(x**0.4) y3 = np.exp(x**0.6) y4 = np.exp(x**0.8) fig, ax = plt.subplots(ncols=1, nrows=1) ax.plot(x, y1, x, y2, x, y3, x, y4) ax.set_yscale('log') ax.minorticks_off() ax.set_xticks(range(18, 54, 5)) ax.grid(linestyle='--') ax.grid(linestyle='--') plt.show()
生成的图如下所示,
可以为轴使用单独的函数格式化程序:
独立地设计它们。看pylab_examples-可能会给你一个起点。
我认为你发布的图片是log plot in y axis。y轴上的每个刻度值都是较低的刻度值乘以2。在正常绘图中,它们的距离是不一样的,但在对数绘图中,它们的距离是一样的。
由于您没有数据,我将展示一个演示如何在y轴中使用日志图的玩具示例:
生成的图如下所示,
相关问题 更多 >
编程相关推荐