Dalam matplotlib, apabila nilai paksi-y anda muncul dalam bentuk yang tidak dijangka, tidak tersusun, kemungkinan besar disebabkan oleh jenis data nilai ini. Selalunya, ia diplot sebagai rentetan dan bukannya nombor.
Untuk membetulkan isu ini, tukar data paksi-y anda kepada terapung dengan menghantarnya secara eksplisit semasa pemahaman senarai:
<code class="python">Solar = [float(line[1]) for line in I020]</code>
Melangkaui data penukaran, ia juga dinasihatkan untuk menggunakan keupayaan pemformatan automatik matplotlib untuk paksi-x apabila bekerja dengan tarikh dan masa. Ciri ini melaraskan putaran label dan aspek lain secara automatik untuk meningkatkan kebolehbacaan graf:
<code class="python">plt.gcf().autofmt_xdate()</code>
Untuk tujuan ilustrasi, mari kita semak semula kod yang disediakan:
<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>
Dalam kod yang diubah suai ini, kami mengisytiharkan rajah dan paksi sebagai objek berasingan (rajah, kapak). Pendekatan ini menawarkan lebih kawalan dan fleksibiliti apabila menyesuaikan atribut plot.
Graf yang terhasil memaparkan nilai paksi-y tersusun dan pelabelan paksi-x yang dipertingkatkan:
[Imej paksi-y tersusun dan pelabelan paksi-x yang dipertingkatkan]
Atas ialah kandungan terperinci Mengapa Nilai Matplotlib Y-Axis Tidak Disusun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!