当我使用sns.pointplot()
中的任何调色板时,无论是否设置join=True
,或者选择任何线型,线都没有显示,这些点都有调色板颜色,但它们没有连接。应该是这样吗?或者我可以设置其他参数来连接点吗?这条线可以是一种颜色。
答案 0 :(得分:1)
一个选项可能是绘制两个点图,一个使用调色板并显示错误栏和点,另一个显示连接线(没有调色板)。
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
#make one plot for the line without points and errorbars
ax = sns.pointplot(x="day", y="tip", data=tips, markers="",
join=True, ci=None, color="k")
#make one plot for the points without the connecting line
ax = sns.pointplot(x="day", y="tip", data=tips,
palette=sns.color_palette())
plt.show()
缺点显然是seaborn完全忽略zorder
并在点的顶部绘制线条。因此,需要在外部使用zorder以获得某种吸引人的结果:
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
#make one plot for the line without points and errorbars
ax = sns.pointplot(x="day", y="tip", data=tips, markers="",
join=True, ci=None, color="k")
#make one plot for the points without the connecting line
ax = sns.pointplot(x="day", y="tip", data=tips,
palette=sns.color_palette())
ax.lines[0].set_zorder(2)
for l in ax.lines[1:]:
l.set_zorder(5)
for c in ax.collections:
c.set_zorder(3)
plt.show()