Pyplot:在x轴上使用百分比

发布于 2022-07-28 22:55:12

我有一个基于简单数字列表的折线图。默认情况下,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)
关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2022-07-28
    为面试而生,有面试问题,就找面试哥。

    这已经晚了几个月,但我用 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,decimalssymbol. max允许您设置对应于轴上 100% 的值(在您的示例中为5)。

    其他两个参数允许您设置小数点和符号后的位数。它们分别默认为None'%'decimals=None将根据您显示的轴数自动设置小数点数。

    请注意,如果您刚刚绘制数据,此格式化程序将使用通常会生成的任何刻度。除了输出到刻度线的字符串之外,它不会修改任何内容。

    更新

    PercentFormatter在 2.1.0 版中被 Matplotlib 接受。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看