Почему мой линейный график Seaborn ось X смещается на одну единицу? - PullRequest
0 голосов
/ 09 февраля 2020

Я пытаюсь сравнить два простых и обобщенных кадра данных pandas с линейным графиком из библиотеки Seaborn, но одна из линий сдвигается на одну единицу по оси X. Что с этим не так? Фреймы данных:

enter image description here enter image description here

Вот мой код:

df = pd.read_csv('/home/gazelle/Documents/m3inference/m3_result.csv',index_col='id')
df = df.drop("Unnamed: 0",axis=1)
for i, v in df.iterrows():
    if str(i) not in result:
        df.drop(i, inplace=True)
    else:
        df.loc[i, 'estimated'] = result[str(i)]

m3 = pd.read_csv('plot_result.csv').set_index('id')
ids = list(m3.index.values)
m3 = m3['age'].value_counts().to_frame().reset_index().sort_values('index')
m3 = m3.rename(columns={m3.columns[0]:'bucket', m3.columns[1]:'age'})

df_estimated = df[df.index.isin(ids)]['estimated'].value_counts().to_frame().reset_index().sort_values('index')
df_estimated = df_estimated.rename(columns={df_estimated.columns[0]:'bucket', df_estimated.columns[1]:'age'})

sns.lineplot(x='bucket', y='age', data=m3)
sns.lineplot(x='bucket', y='age', data=df_estimated)

И результат:

enter image description here

1 Ответ

0 голосов
/ 09 февраля 2020

Как было указано в комментариях, предоставленные вами данные и код, по-видимому, дают правильный результат:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
sns.set()

m3 = pd.DataFrame({"index": [2, 3, 4, 1], "age": [123, 116, 66, 33]})
df_estimated = pd.DataFrame({"index": [3, 2, 4, 1], "estimated": [200, 100, 37, 1]})

sns.lineplot(x="index", y="age", data=m3)
sns.lineplot(x="index", y="estimated", data=df_estimated)
plt.show()

Это дает график, который отличается от того, который вы опубликовали выше:

Resulting plot

Из ваших снимков экрана видно, что вы работаете в ноутбуке Jupyter. Возможно, вы страдаете от проблемы, заключающейся в том, что во время построения графика у кадра данных m3 больше не было значений, которые вы напечатали выше, а были изменены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...