私は数秒にわたってプロットしており、x軸のラベルとして時間があります。これが正しいタイムスタンプを取得できる唯一の方法です。ただし、最後にゼロがたくさんあります。それらを取り除く方法はありますか?
plt.style.use('seaborn-whitegrid')
df['timestamp'] = pd.to_datetime(df['timestamp'])
fig, ax = plt.subplots(figsize=(8,4))
seconds=MicrosecondLocator(interval=500000)
myFmt = DateFormatter("%S:%f")
ax.plot(df['timestamp'], df['vibration(g)_0'], c='blue')
ax.xaxis.set_major_locator(seconds)
ax.xaxis.set_major_formatter(myFmt)
plt.gcf().autofmt_xdate()
plt.show()
これにより、この画像が生成されます。余分なゼロを除いて、すべてが完璧に見えます。5を維持したまま、どうすればそれらを取り除くことができますか?
文字列の最後の5桁を単純に切り取りたいと思います。これは、Pythonの日時に対する答えでもあります。マイクロ秒単位のラウンド/トリム桁数が示唆しています。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.dates import MicrosecondLocator, DateFormatter
from matplotlib.ticker import FuncFormatter
x = np.datetime64("2018-11-30T00:00") + np.arange(1,4, dtype="timedelta64[s]")
fig, ax = plt.subplots(figsize=(8,4))
seconds=MicrosecondLocator(interval=500000)
myFmt = DateFormatter("%S:%f")
ax.plot(x,[2,1,3])
def trunc_ms_fmt(x, pos=None):
return myFmt(x,pos)[:-5]
ax.xaxis.set_major_locator(seconds)
ax.xaxis.set_major_formatter(FuncFormatter(trunc_ms_fmt))
plt.gcf().autofmt_xdate()
plt.show()
この形式は非常に珍しいことに注意してください。したがって、プロットの読者がそれを理解していることを確認してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加