1

matplotlib のステップ関数についていくつか質問されたことがありますが、これは異なります。これが私の機能です:

def JerkFunction(listOfJerk):
    '''Return the plot of a sequence of jerk'''
    #initialization of the jerk
    x = np.linspace(0,5,4)
    y = listOfJerk #step signal

    plt.axis([0,5,-2,2])
    plt.step(x,y,'y') #step display
    plt.xlabel('Time (s)')
    plt.ylabel('Jerk (m/s^3)')

    plt.title('Jerk produced by the engine')

    return plt.show()

JerkFunction([1,1,-1,1])入れたときに得られる曲線を取得したいのですが[1,-1,1,-1]、実際には、最初はジャーク値が0で、実際の場合、ジャーク値は0になり、 1にt=0なると1になります。jerk=+1t=Jerk=-1

4

2 に答える 2

5

この質問のMatlibplotステップ関数インデックス0でも同じ問題が発生していると思います。あなたが抱えている問題は、stepがx値( doc )に関連して値を変更する場所に関連しています。

以下は、これを実行できる3つの方法を示しています。わかりやすくするために、曲線は垂直方向にシフトされています。水平の破線は「ゼロ」であり、垂直の点線はx値です。

x = np.linspace(0,5,3)
y = np.array([1,-1,1])

fig = plt.figure()
ax = fig.add_subplot(111)
ax.step(x,y,color='r',label='pre')
ax.step(x,y+3,color='b',label='post',where='post')
ax.step(x,y+6,color='g',label='mid',where='mid')
for j in [0,3,6]:
    ax.axhline(j,color='k',linestyle='--')
for j in x:
    ax.axvline(j,color='k',linestyle=':')
ax.set_ylim([-2,9])
ax.set_xlim([-1,6])
ax.legend()

ax.draw()

3ステップのロケーションオプションの例

于 2012-10-11T18:42:18.940 に答える
0

あなたが何をしようとしているのか正確には明らかではありませんが、これはあなたが探しているプロットを生み出すかもしれないと思います. これがあなたが探しているものではない場合は、より多くの情報を提供することがより簡単になります.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,5,4)
y = [1,1,-1,1]

fig = plt.figure()
ax = fig.add_subplot(111)
ax.step(x,y)
ax.set_xlabel('Time (s)')
ax.set_ylabel(r'Jerk ($m/s^3$)')
ax.set_ylim((-1.5,1.5))
ax.set_title('Jerk Produced by the Engine')

plt.show()

プロット例

于 2012-10-11T15:13:07.987 に答える