在 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中文網其他相關文章!