Избегайте сортировки по оси X в Matplotlib и построить общую ось X с несколькими осями Y - PullRequest
0 голосов
/ 28 мая 2019

Я хочу уточнить два вопроса в этом посте.

У меня есть панда df, как на картинке ниже.enter image description here

1.Задача прорисовки: .Когда я пытаюсь построить column 0 with column 1, значения сортируются.

пример: в col_0 у меня есть значения, начиная с 112 till 0.значения сортируются в порядке возрастания, и на графике показан обратный график оси X, когда я использую приведенный ниже код.

plt.plot(df.col_0, df.col_1)

enter image description here

Что будет лучшеспособ избежать сортировки значений оси X.?

2.Все параметры в одном графике Я хотел бы отобразить все параметры в одном графике.За исключением оси X, все остальные значения параметров находятся между 0 to 1 (в той же шкале). Что будет лучшим питонским способом.Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 28 мая 2019

Попробуйте нарисовать серию / фрейм данных по индексу:

col_to_draw = [col for col in df.columns if col!='col0']

# if your data frame is indexed as 0,1,2,... ignore this step
tmp_df = df.reset_index()

ax = tmp_df[col_to_draw].plot(figsize=(10,6))
xtick_vals = ax.get_xticks()
ax.set_xticklabels(tmp_df.col0[xtick_vals].tolist())

Выход:

enter image description here

1 голос
/ 28 мая 2019

Я не понимаю, что вы имеете в виду, когда они сортируются - разве они не отображают 112, 0.90178 и не подключают его к 110.89899, ​​0.90779 и т. Д.?

Чтобы разделить ось X, но иметь 2 оси Y, на которых нанесены определенные наборы, используйте twinx

fig, ax1 = plt.subplots()
ax1.plot(df.col_0, df.col_1)
ax2 = ax1.twinx()
ax2.plot(df.col_0, df.col_2)

re: как построить в нужном вам порядке

Я полагаю, что вы намерены построить эти значения в зависимости от времени или индекса. Для этого я предлагаю:

fig, ax1 = plt.subplots()
ax1.plot(df['Time'], df.col_0) # or df.index, df.col_0
ax2 = ax1.twinx()
ax2.plot(df['Time'], df.col_1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...