回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我想用Matplotlib在Python中绘制以下从0到5的分段函数。</p>
<p><code>f(x) = 1, x != 2; f(x) = 0, x = 2</code></p>
<p>在Python中。。。</p>
<pre><code>def f(x):
if(x == 2): return 0
else: return 1
</code></pre>
<p>使用NumPy创建一个数组</p>
<pre><code>x = np.arange(0., 5., 0.2)
array([ 0. , 0.2, 0.4, 0.6, 0.8, 1. , 1.2, 1.4, 1.6, 1.8, 2. ,
2.2, 2.4, 2.6, 2.8, 3. , 3.2, 3.4, 3.6, 3.8, 4. , 4.2,
4.4, 4.6, 4.8])
</code></pre>
<p>我试过像。。。</p>
<pre><code>import matplotlib.pyplot as plt
plt.plot(x,f(x))
</code></pre>
<p>或者。。。</p>
<pre><code>vecfunc = np.vectorize(f)
result = vecfunc(t)
</code></pre>
<p>或者。。。</p>
<pre><code>def piecewise(x):
if x == 2: return 0
else: return 1
import matplotlib.pyplot as plt
x = np.arange(0., 5., 0.2)
plt.plot(x, map(piecewise, x))
ValueError: x and y must have same first dimension
</code></pre>
<p>但我没有正确使用这些函数,现在只是随机猜测如何做到这一点。</p>
<p>一些答案开始出现。。。但是这些点被连接成一条曲线。我们怎么画出点呢?</p>
<p><a href="https://i.stack.imgur.com/aR7VL.png" rel="noreferrer"><img src="https://i.stack.imgur.com/aR7VL.png" alt="enter image description here"/></a></p>