Вариант 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()
График
Option 2: x axis str
type
Answer
In the case you do not want x axis as a general time %H:%M
axis, but you want to keep your original ticks, you have to mantain the x axis as a str
type and simply sample original ticks, then apply them to the axis:
xticks = graphdf['Time'][::2]
ax.set_xticks(xticks)
You can срез исходные отметки с [::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()
Участок
введите описание изображения здесь