Морской участок с общей осью х - PullRequest
4 голосов
/ 10 ноября 2019

Я пытаюсь построить 2 столбца данных (один в виде гистограммы, а другой в виде диаграммы рассеяния). Я могу заставить это работать с Matplotlib, но я хочу это с Seaborn.

Это код:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

df = pd.DataFrame({'Announced Year': [2016, 2017, 2018, 2019],
              'Amount Awarded': [12978216, 11582629, 11178338, 11369267],
              'Number of Awarded': [18, 14, 13, 13]})

fig, ax1 = plt.subplots()

ax2 = ax1.twinx()

sns.scatterplot(x="Announced Year", y="Number of Awarded", data=df, ax=ax2)
sns.barplot(x="Announced Year", y="Amount Awarded", data=df, ax=ax1)

fig.tight_layout()  # otherwise the right y-label is slightly clipped

plt.title('2016 to 2019 Announcements')

This is the image I get, where I can't see the scatterplot

1 Ответ

1 голос
/ 11 ноября 2019

Вы можете построить график с общей осью X, используя x=np.arange(0,len(df)) вместо x="Announced Year" для диаграммы рассеяния .

fig, ax1 = plt.subplots()

ax2 = ax1.twinx()

sns.barplot(x="Announced Year", y="Amount Awarded", data=df, ax=ax2, alpha=.5)
sns.scatterplot(x=np.arange(0,len(df)), y="Number of Awarded", data=df, ax=ax1)

fig.tight_layout()  # otherwise the right y-label is slightly clipped

plt.title('2016 to 2019 Announcements')

enter image description here

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