[OK]を受け取った:私はのstrptimeのstrftimeの代わりに使用している場合
Plotting (wrong) time against y values
私は例外TypeErrorが得ます。あなたが望むものを得るにはいくつかの方法があります。
あなたはマイクロ秒を持つために解決するために喜んでいる場合、あなたはあなたが必要なものには本当に近いはずである。
import matplotlib.pyplot as plt
import datetime
time_strings = ['10:29:55', '10:34:44']
sy1 = [679.162, 679.802]
times = [datetime.datetime.strptime(elem, '%H:%M:%S') for elem in time_strings]
plt.plot(times, sy1, 'ro')
plt.xlabel('Time')
plt.ylabel('Position')
plt.show()
これはただの書式ではマイクロ秒で、あなたはプロットにしたい時刻を表示する必要があります。マイクロ秒はすべて醜いですが、唯一の変更はわかりやすいものでした。私はimport time
またはimport matplotlib.ticker
ではありませんでした。より正確な変数名にx
を変更し、あなたが行ったようにdatetimesを作成しました。マイクロ秒を取り除くには、物事は醜いものになります。 2つの値しか設定していないので、FixedFormatterを使用することはできません。標準プロットには2ティック以上の値があります。 FuncFormatterを動作させる方法を見つける必要があります。これは必要に応じて動作しますが、まだノイズが多いので、plt.gcf().autofmt_xdate()
にも追加しています。
import matplotlib.pyplot as plt
import matplotlib.ticker
import datetime
import pylab
time_strings = ['10:29:55', '10:34:44']
sy1 = [679.162, 679.802]
times = [datetime.datetime.strptime(elem, '%H:%M:%S') for elem in time_strings]
plt.plot(times, sy1, 'ro')
formatter = matplotlib.ticker.FuncFormatter(lambda tick_value, _: datetime.datetime.strftime(pylab.num2date(tick_value), '%H:%M:%S'))
plt.gca().xaxis.set_major_formatter(formatter)
plt.gca().xaxis.set_minor_formatter(formatter)
plt.xlabel('Time')
plt.ylabel('Position')
plt.gcf().autofmt_xdate()
plt.show()
FuncFormatterを定義する行が乱雑です。私はラムダを定義します。ラムダは、1行に定義された関数です。 FuncFormatterは2つの引数を取ることを期待しています。最初のものはtick_valueで、2番目のものは本当に気にしないので、気にしないことを示すために標準変数名_
を付けました。ティック値は、日付時刻またはタイムスタンプです。ティック値から日時に到達する方法は、pylab.num2dateを呼び出すことです。
この2番目のソリューションは、必要なものだけであることがわかります。あなたがしなければならなかった重要なことは、あなたの変数型が何であったか、そしてどこでどのような変数型が必要であったかを追跡することでした。
したがって、datetimesの解析やプロットの問題はありますか?それらの2つのものを分けて、それらを独立して扱います。 – deceze
'plt.plot(x、y)'を試してください。 xとyはすでにリストであり、この場合matplotlibは2dリストを必要としません。 – vroomfondel
あなたの編集により、画像への参照が取り除かれました。 matplotlibを使ってプロットしようとしていますか?おそらくhttps://matplotlib.org/api/figure_api.html#matplotlib.figure.Figure.autofmt_xdateが必要です。あなたが使用しているプロットライブラリを編集することができれば、答えたい人がいるかもしれません。 –