【问题标题】:Python matplotlib: How do I prevent axis autoscaling in multiple plots?Python matplotlib:如何防止多个图中的轴自动缩放?
【发布时间】:2017-03-10 09:33:26
【问题描述】:

我是 SO 和 Python 的初学者。

使用 Python 和 matplotlib 我想创建一个像这样的图形:

a |--..---/\___----\/\.../----\....|
b |---./--\_---..                  |
  |________________________________|
t  1  2  3  4  5  6  7  8  9  10 11

信号 (a) 和 (b) 具有相同的频率但长度不同。 目标是将信号 (a) 拉伸到图形的宽度, 而信号 (b) 只能延伸到可比较的长度。

如何设置轴的长度?这应该自动完成,因为会有更多的信号。据我了解,应该使用 len(signal)。

获取图表以比较信号 (a) 和信号 (b) 的技巧是什么?是否填充零来表示 (b) 答案?

【问题讨论】:

  • 这是默认行为。只是一个接一个地绘制......

标签: python matplotlib


【解决方案1】:

轴的长度确实是自动确定的,除非你指定不同的东西(例如使用ax.set_xlim())。它总是会拉伸以包含绘制到轴上的所有数据,因此如果一个线图大于另一个线图,它会自动调整大小以容纳两个图表。

也就是说,绘制两个不同程度的图表非常简单。

import matplotlib.pyplot as plt
import numpy as np

x1 = np.linspace(0,16, num=100)
y1 = np.sin(x1)+3

x2 = np.linspace(1,10, num=242)
y2 = np.sin(x2)+1

plt.plot(x1,y1)
plt.plot(x2,y2)

plt.show()

可以看出,游戏中没有坐标轴参数的适配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 2023-02-24
    • 2015-02-23
    相关资源
    最近更新 更多