Pyplot:在x轴上使用百分比
我有一个基于简单数字列表的折线图。默认情况下,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
类。使用此类,您可以执行以下操作来设置轴: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
)。其他两个参数允许您设置小数点和符号后的位数。它们分别默认为
None
和'%'
。decimals=None
将根据您显示的轴数自动设置小数点数。请注意,如果您刚刚绘制数据,此格式化程序将使用通常会生成的任何刻度。除了输出到刻度线的字符串之外,它不会修改任何内容。
更新
PercentFormatter
在 2.1.0 版中被 Matplotlib 接受。