ホームページ  >  記事  >  バックエンド開発  >  Matplotlib の Y 軸の値が順序付けされていないのはなぜですか?

Matplotlib の Y 軸の値が順序付けされていないのはなぜですか?

DDD
DDDオリジナル
2024-10-24 11:27:29323ブラウズ

Why Are Matplotlib Y-Axis Values Not Ordered?

Matplotlib の y 軸の値が順序付けされていないのはなぜですか?

matplotlib で、y 軸の値が予期しない順序付けされていない形式で表示される場合は、次の可能性があります。これらの値のデータ型によるものです。多くの場合、これらは数値ではなく文字列としてプロットされます。

この問題を修正するには、リストの内包中に Y 軸データを明示的にキャストして浮動小数点数に変換します。

<code class="python">Solar = [float(line[1]) for line in I020]</code>

データを超えて変換する場合、日付と時刻を操作する場合は、matplotlib の X 軸の自動書式設定機能を利用することもお勧めします。この機能は、グラフの読みやすさを高めるためにラベルの回転やその他の側面を自動的に調整します:

<code class="python">plt.gcf().autofmt_xdate()</code>

説明のために、提供されたコードを修正してみましょう:

<code class="python">I020 = [line.strip('\n').split(",") for line in open('PV5sdata1.csv')][1:]
Time = [datetime.datetime.strptime(line[0], "%H%M%S%f") for line in I020]
Time1 = [mdates.date2num(line) for line in Time]
Solar = [float(line[1]) for line in I020]

fig, ax = plt.subplots()

ax.set_title('Solar data')
ax.set_xlabel('Time')
ax.set_ylabel('Solar')
ax.plot_date(Time1, Solar, 'k-')

hfmt = mdates.DateFormatter('%H:%M:%S')
ax.xaxis.set_major_formatter(hfmt)
plt.gcf().autofmt_xdate()

plt.show()</code>

この変更されたコードでは、次のように宣言します。 Figure と Axes を別のオブジェクトとして表示します (fig、ax)。このアプローチにより、プロット属性をカスタマイズする際の制御性と柔軟性が向上します。

結果のグラフには、整然とした Y 軸の値が表示され、X 軸のラベル付けが改善されています。

[順序付けされた y 軸とX 軸のラベル付けが改善されました]

以上がMatplotlib の Y 軸の値が順序付けされていないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。