首页 > 解决方案 > Pyplot 从负值开始 x 轴

问题描述

我正在尝试绘制分段函数,但目前当我尝试以负数开始 x 值时收到错误消息。如果我运行以下代码(尽管只有函数的一部分),则代码可以正常工作:

x = np.linspace(0, 100, 100)
y = np.piecewise(x, [x < 0, x >= 0], [0, (1/100)*x*np.exp(-x/10)])
z = -np.exp(-x/10)*((x/10)+1)+1
plt.plot(x, y, 'r', label='test')
plt.legend(loc='right')
plt.show()

但是当我将第一行更改为

x = np.linspace(-100, 100, 100)

我收到错误消息:“NumPy 布尔数组索引分配无法将 100 个输入值分配给掩码为真的 50 个输出值”

任何帮助将不胜感激。

标签: pythonnumpymatplotlib

解决方案


基于文档中提供的示例:

y = np.piecewise(x, [x < 0, x >= 0], [0, lambda x: (1/100)*x*np.exp(-x/10)])

输出:

在此处输入图像描述


推荐阅读