如何将点放在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()
现在如何在points_df
中添加数据作为该图上的红点?
答案 0 :(得分:1)
您可以使用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)
答案 1 :(得分:1)