python - 如何从 Matplotlib 中的 Figure 或 Axes 对象中获取绘制数据的限制?
问题描述
我正在尝试确定 matplotlib 轴或图形上数据点的限制,但我找不到任何方法。我将举一个例子,但原始图像要复杂得多:
通过使用 Axes.get_xbound() 或 Axes.get_xlim() 我得到 (-265.6, 6000.0) 但我想得到 (0,5570)。
我问这个是因为在这部分代码中我只能访问 Figure 或 Axes 对象。像这样的东西:
def plot_detail():
fig, ax = plt.subplots(1)
# Code
# ...
return fig,ax
def main():
fig,ax = plot_detail()
print(ax.get_xbound())
print(ax.get_xlim())
# Here I would need the data limits
# Any Idea how?
解决方案
首先,作为一个旁注,从你想要代码中只有绘图(图和轴)的点的数据来看,在我看来,至少有一个不太好的设计决策在设计/编写代码时制作。如果我能看到整个代码,我可能会推荐一种更好的方法。也就是说,有时我们没有预料到代码的所有需求是可以理解的,然后有时(取决于程序的大小)可能不值得重新设计/重写部分代码的努力。
因此,要获取数据(以了解数据本身的 x 限制,而不仅仅是绘图)......您可以通过lines.Line2D
从 Axes 对象获取对象来做到这一点。
即使看起来您正在绘制条形图,那里仍然应该有一个 line2D 对象。该对象包含 xy 数据。
xdata = ax.get_lines()[0].get_xdata()
print('xdata limits:',xdata[0],xdata[-1])
HTH。
推荐阅读
- xml - 在 xslt 的逗号分隔列表中查找确切的单词
- android - 背景颜色设置不正确。它显示与设置颜色不同的颜色
- docker - 无法在 Ubuntu 18.04(Virtual Box)上初始化 Kubernetes 集群
- jira - 将任务从 csv 文件导入集会
- php - 教义:在语句中为日期类型插入空值
- python - 如何使用python从javascript网站上抓取数据
- sql - 如何在表中的列上添加检查约束?
- reactjs - 如何在 useEffect 中使用变量而不将它们放在依赖项中?
- android-studio - Android 卡在 Android Studio 中加载
- angular - Angular - 垫选择列表传递值