选项1:x轴datetime类型
回答
我想你的数据在一个名为data.csv. 如果使用 加载,则pd.read_csv需要注意'Time'列的格式。查看以下输出:
print(graphdf.info())
如果该DType列'Time'的 是object,pandas则将该列的值标识为str。在这种情况下,您需要将它们转换为datetime:
graphdf['Time'] = pd.to_datetime(graphdf['Time'], format = '%H:%M')
最后,您可以设置您在 x 轴上看到的标签的格式:
ax.xaxis.set_major_formatter(md.DateFormatter('%H:%M'))
检查此答案以供参考。
整个代码
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as md
graphdf = pd.read_csv('data.csv')
graphdf['Time'] = pd.to_datetime(graphdf['Time'], format = '%H:%M')
fig, ax = plt.subplots()
ax.plot(graphdf['Time'],graphdf['Price'],color='red')
plt.xticks(rotation=90)
ax.xaxis.set_major_formatter(md.DateFormatter('%H:%M'))
plt.show()
阴谋

选项2:x轴str类型
回答
如果您不希望 x 轴作为一般%H:%M时间轴,但您想保留原始刻度,则必须将 x 轴作为一种str类型并简单地对原始刻度进行采样,然后将它们应用于轴:
xticks = graphdf['Time'][::2]
ax.set_xticks(xticks)
您可以用切片原始刻度[::n],步骤在哪里n。如果n = 2您选择替代刻度;如果n = 3您每 3 次选择一个刻度,依此类推。
整个代码
import pandas as pd
import matplotlib.pyplot as plt
graphdf = pd.read_csv('data.csv')
fig, ax = plt.subplots()
ax.plot(graphdf['Time'],graphdf['Price'],color='red')
plt.xticks(rotation=90)
xticks = graphdf['Time'][::2]
ax.set_xticks(xticks)
plt.show()
阴谋
