gpt4 book ai didi

python - pyplot step 函数不为第一个/最后一个点绘制水平

转载 作者:行者123 更新时间:2023-11-28 18:17:22 25 4
gpt4 key购买 nike

我正在尝试为输入数据中的每个点创建一个具有水平步长或水平的阶梯图。无论您为 where 参数指定“pre”还是“post”,pyplot.step 都不会这样做。如果您指定“pre”,它会从第一个点开始绘制一条垂直线,但不会为该值绘制一条直线。如果您指定“post”,则会发生相反的情况。有关演示,请参见下面的代码。

from matplotlib import pyplot as plt

#Series to plot
years = [2008, 2009, 2010, 2011, 2012, 2013]
data = [125, 78, 113, 56, 98, 140]

#Plot series
fig, ax = plt.subplots(figsize=(6,4))
ax.step(years, data, where='post')
plt.show()

上面的输出

enter image description here

对于上下文,该应用程序是一个时间序列图,显示与每个 y 值对应的时间段的水平水平。我有一个数据集,其中每个点代表一年的汇总统计数据,因此每个 y 值适用于整年,而不是单个时间点。因此,阶梯图似乎是一种直观的展示方式。我意识到条形图或直方图可能会更好地控制我的问题,但是,由于我有连续的数据系列,所以最好使用线图。

有没有办法改变这种行为,以便为所有点绘制一条水平线,包括第一个点和最后一个点?

最佳答案

这里的问题是 pyplot 不知道你的“下一个”x 值在哪里,即。不知道将水平线延伸到哪一点。所以你需要在结尾(post)或开头(pre)手动添加另一个x值,并复制最后一个/第一个y值。

关于python - pyplot step 函数不为第一个/最后一个点绘制水平,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47538496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com