Как я могу добавить очки на барборде морского побережья? - PullRequest
0 голосов
/ 29 января 2019

Как я могу поставить точки на seaborn гистограмму?Следующий код создает гистограмму.

import matplotlib.pyplot as plt
import seaborn
import matplotlib
matplotlib.use('TkAgg')
seaborn.set_context('talk')

data_df = pandas.DataFrame([3, 1, 2, 4], index=['a', 'b', 'c', 'd']).transpose()
points_df = pandas.DataFrame([3.5, 0.5, 1.75, 4.25], index=['a', 'b', 'c', 'd']).transpose()
plt.figure()
seaborn.barplot(data=data_df)

plt.show()

enter image description here

Как теперь я могу добавить данные в points_df в виде красных точек на этом графике?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Это то, что вы ищете?

data_df = pd.DataFrame([3, 1, 2, 4], index=['a', 'b', 'c', 'd']).transpose()
points_df = pd.DataFrame([3.5, 0.5, 1.75, 4.25], index=['a', 'b', 'c', 'd']).transpose()

plt.figure()
sns.barplot(data=data_df)
sns.scatterplot(data=points_df.T, legend=False, zorder=10)

по какой-то причине мне пришлось изменить zorder точек, в противном случае некоторые были бы спрятаны за решеткой

enter image description here

0 голосов
/ 29 января 2019

Вы можете использовать pointplot из seaborn для нанесения красных точек, используя join=False и zorder, чтобы вывести точки на передний план.Ключевым моментом здесь является определение экземпляра оси ax и передача его на оба графика.

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import matplotlib
matplotlib.use('TkAgg')
seaborn.set_context('talk')

fig, ax = plt.subplots()

data_df = pd.DataFrame([3, 1, 2, 4], index=['a', 'b', 'c', 'd']).transpose()
points_df = pd.DataFrame([3.5, 0.5, 1.75, 4.25], index=['a', 'b', 'c', 'd']).transpose()
sns.barplot(data=data_df, ax=ax, zorder=0)
sns.pointplot(data=points_df, join=False, color='red', ax=ax, zorder=1)

enter image description here

...