首頁 >後端開發 >Python教學 >為什麼 Matplotlib Y 軸值沒有排序?

為什麼 Matplotlib Y 軸值沒有排序?

DDD
DDD原創
2024-10-24 11:27:29435瀏覽

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>

在在此修改後的程式碼中,我們聲明圖形和軸作為單獨的物件(fig、ax)。這種方法在自訂繪圖屬性時提供了更多的控制和靈活性。

產生的圖形顯示有序的 y 軸值和改進的 x 軸標籤:

[有序 y 軸和改進的 x 軸標籤]

以上是為什麼 Matplotlib Y 軸值沒有排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn