0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

matplotlibで日付のメモリの幅を変える

Posted at

はじめに

データの可視化のためにmatplolibでグラフを作成した時に問題発生
Figure_1.png

X軸が日付を表しています
2023-01-01、2023-01-02、2023-01-03、、、と日付が続き、黒く塗りつぶされたように表示されました。

問題のコード

import pandas as pd
import matplotlib.pyplot as plt

list = [('2023-01-01', 100), ('2023-01-02', 110), ('2023-01-03', 120), ...]
df = pd.DataFrame(list, columns=['date', 'price'])

plt.figure()
plt.show()

X軸の日付を設定しているので、このまま表示すると1日ずつの日付がX軸に表示されて、
前述の画像のように黒く塗りつぶされたような表示になりました。

改善したコード

X軸の日付形式は2023-01-01のように、yyyy-mm-dd形式なので、
yyyy-mm形式で1ヶ月ごとに表示されるようにします。

日付の値が含まれているDataFrameの'date'の型はstr型に入っていると問題の表示になるようです

なので、str型からdatetime型に変換します

import pandas as pd
import matplotlib.pyplot as plt

list = [('2023-01-01', 100), ('2023-01-02', 110), ('2023-01-03', 120), ...]
df = pd.DataFrame(list, columns=['date', 'price'])

plt.figure()
# str型からdatetime型に変換
df['date'] = pd.to_datetime(df['date'])
plt.show()

実行してみると
Figure_2.png

X軸の塗りつぶしがなくなり、yyyy-mm形式で見た目よく表示されています

おわりに

matplotlibでグラフ化する時には、str型だと綺麗に表示されないので注意が必要です

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?