【问题标题】:Extend baseline of stem plot in matplotlib to axis limits将 matplotlib 中的茎图基线扩展到轴范围
【发布时间】:2018-04-21 19:09:18
【问题描述】:

在使用 matplotlib 生成茎图时,如何使基线扩展到轴范围,而不是以最后一个数据点结束?

【问题讨论】:

标签: matplotlib baseline stem


【解决方案1】:

plt.stem 绘图的基线从函数调用返回,

markerline, stemlines, baseline = plt.stem(x, np.cos(x), '-.')

您可以将该行的数据设置为[0,1],并使用yaxis_transform,这样这些坐标就被解释为轴坐标。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.1, 2*np.pi, 10)
markerline, stemlines, baseline = plt.stem(x, np.cos(x), '-.')
plt.setp(baseline, 'color', 'r', 'linewidth', 2)

baseline.set_xdata([0,1])
baseline.set_transform(plt.gca().get_yaxis_transform())

plt.show()

【讨论】:

  • 谢谢 - 这很好用。对不起,我最初的帖子很糟糕——谢谢你清理它。我来自 MATLAB 多年,最近才开始尝试使用 Python。你是怎么想出这个解决方案的?我找不到任何关于基线句柄属性的文档。
  • 你是对的,这个解决方案到目前为止并不明显,只有在其他情况下使用get_yaxis_transform() 才能知道它。简而言之:经验。然而,从文档中可以清楚地看出,茎图返回三个对象的事实。此外,查看返回类型并阅读文档中返回的对象通常会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2019-11-09
  • 1970-01-01
  • 2017-09-17
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 2018-12-11
  • 1970-01-01
相关资源
最近更新 更多