Получение трех точек данных для одной строки данных за один xtick

Я пытаюсь построить линейный график, используя Dataframe. После этого я вижу три точки данных на графике для одной строки данных.

fig = plt.figure(figsize=(8, 4.6), dpi=100)
ax = fig.add_subplot(111)    
ax.plot(df[column], df['Value'])

Когда я использую гистограмму dataframe, я правильно вижу график.

df.plot(x=column, ax=ax, kind='bar')

Как это исправить?

введите описание изображения здесь

Я не знаю, что такое column, но я думаю, что ax.plot(df[column].values, df['Value'].values) должно работать правильно. Если вы можете создать минимальный воспроизводимый пример (т. е. минимальный исполняемый код), из этого можно составить отчет об ошибке.

ImportanceOfBeingErnest 08.04.2019 14:22

почему бы не использовать df.plot(x=column, ax=ax, kind='line')?

tmdavison 08.04.2019 14:51

Линейный график @tmdavison pandas не поддерживает строковые значения для xticks github.com/pandas-dev/pandas/issues/22334, поэтому я использую pyplot

user1404 08.04.2019 15:00

@ImportanceOfBeingErnest Я использовал столбец для ссылки на любой общий столбец. Теперь, что касается рассматриваемой проблемы, это похоже на ошибку с pyplot. Не могли бы вы заглянуть на github.com/matplotlib/matplotlib/issues/13905 и проверить, можете ли вы мне помочь?

user1404 08.04.2019 15:10

Я комментировал на гитхабе. В этом файле test.txt у вас есть повторяющееся значение в столбце GNRL_Scenario: V2017AC, поэтому строка прыгает вперед и назад.

tmdavison 08.04.2019 15:12

Да, большое спасибо, что указали на это! Виноват!

user1404 08.04.2019 15:18

@tmdavison В таком случае, почему в сюжете панд нет двух «V2017AC»?

user1404 08.04.2019 15:27

I думать pandas рассматривает каждое значение в данных x как отдельный индекс, даже если оно повторяется, в то время как matplotlib будет группировать повторяющиеся значения вместе. Но я не очень хорошо знаком с пандами, поэтому кто-то другой, вероятно, сможет объяснить лучше.

tmdavison 08.04.2019 15:35

Возможно, вы правы, я использовал метод drop_duplicates, чтобы удалить дубликат V2017AC, и теперь все работает нормально. Спасибо еще раз!

user1404 08.04.2019 15:46
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
9
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Отбросьте повторяющееся значение в столбце «GNRL_Scenario» и постройте график.

fig = plt.figure(figsize=(8, 4.6), dpi=100)
ax = fig.add_subplot(111)   
df = df.drop_duplicates(df[column]) #for dropping duplicate values in this column
ax.plot(df[column], df['Value'])

Другие вопросы по теме