ax = sns.barplot(x="size", y="algorithm", hue="ordering", data=df2, palette=sns.color_palette("cubehelix", 4))

在创建海洋条形图之后(或之前),有没有办法让我传递每个条形的填充(连同颜色一起填充图案)值?
seabornmatplotlib做到这一点的方法会很有帮助!

最佳答案

您可以通过捕获AxesSubplot返回的barplot然后遍历其patches来遍历创建的条。然后,您可以使用.set_hatch()为每个单独的条设置阴影线

这是一个最小的示例,它是here的barplot示例的修改版本。

import matplotlib.pyplot as plt
import seaborn as sns

# Set style
sns.set(style="whitegrid", color_codes=True)

# Load some sample data
titanic = sns.load_dataset("titanic")

# Make the barplot
bar = sns.barplot(x="sex", y="survived", hue="class", data=titanic);

# Define some hatches
hatches = ['-', '+', 'x', '\\', '*', 'o']

# Loop over the bars
for i,thisbar in enumerate(bar.patches):
    # Set a different hatch for each bar
    thisbar.set_hatch(hatches[i])

plt.show()

python - 是否可以在seaborn.barplot中的每个单独的栏上添加阴影?-LMLPHP

感谢@kxirog在评论中提供此附加信息:
for i,thisbar in enumerate(bar.patches)将一次从左到右遍历每种颜色,因此它将遍历左蓝色条,右蓝色条,左绿条等。

关于python - 是否可以在seaborn.barplot中的每个单独的栏上添加阴影?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35467188/

10-12 22:10