首页  >  文章  >  后端开发  >  为什么 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>

在此修改后的代码中,我们声明图形和轴作为单独的对象(fig、ax)。这种方法在自定义绘图属性时提供了更多的控制和灵活性。

生成的图形显示有序的 y 轴值和改进的 x 轴标签:

[有序 y 轴和改进的 x 轴标签]

以上是为什么 Matplotlib Y 轴值没有排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn