我有一个基于简单数字列表的折线图。默认情况下,x 轴只是绘制的每个值的增量 1。我想成为一个百分比,但不知道怎么做。因此,x 轴不是从 0 到 5,而是从 0% 到 100%(但保持合理间隔的刻度线。代码如下。谢谢!
from matplotlib import pyplot as plt from mpl_toolkits.axes_grid.axislines import Subplot data=[8,12,15,17,18,18.5] fig=plt.figure(1,(7,4)) ax=Subplot(fig,111) fig.add_subplot(ax) plt.plot(data)
这已经晚了几个月,但我用 matplotlib 创建了PR#6251来添加一个新PercentFormatter类。使用此类,您可以执行以下操作来设置轴:
PercentFormatter
import matplotlib.ticker as mtick # Actual plotting code omitted ax.xaxis.set_major_formatter(mtick.PercentFormatter(5.0))
这将以 0% 到 100% 的比例显示从 0 到 5 的值。格式化程序在概念上与@Ffisegydd 建议的做法相似,只是它可以考虑任意现有的刻度。
PercentFormatter()接受三个参数,max,decimals和symbol. max允许您设置对应于轴上 100% 的值(在您的示例中为5)。
PercentFormatter()
max
decimals
symbol
5
其他两个参数允许您设置小数点和符号后的位数。它们分别默认为None和'%'。decimals=None将根据您显示的轴数自动设置小数点数。
None
'%'
decimals=None
请注意,如果您刚刚绘制数据,此格式化程序将使用通常会生成的任何刻度。除了输出到刻度线的字符串之外,它不会修改任何内容。
更新
PercentFormatter在 2.1.0 版中被 Matplotlib 接受。