我无法弄清楚如何在每个小平面网格元素周围绘制一个黑色边框。
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "time")
g.map(plt.hist, "tip")
plt.show()
赠予:
我想要这样的东西:
我尝试使用
sb.reset_orig() #after the seaborn import, to reset to matplotlib original rc
以及轴上的各种选项:
axes=g.axes.flatten()
for ax in axes:
ax. # I can't figure out the right option.
这可能吗?
答案 0 :(得分:1)
我不确定默认情况下为什么脊柱不是set_visible
,但是我能够根据this的答案创建此解决方案。另外,我仅使用您的代码得到两个子图,而不是问题中的4个子图。也许这是一个seaborn
问题。我通过遍历4个刺简化了您的代码。
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
sb.set()
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "time")
g.map(plt.hist, "tip")
for ax in g.axes.flatten(): # Loop directly on the flattened axes
for _, spine in ax.spines.items():
spine.set_visible(True) # You have to first turn them on
spine.set_color('black')
spine.set_linewidth(4)
编辑(基于以下评论)
在上述答案中,由于您只想更改ax.spines
词典中的刺(值)的属性,因此您也可以直接使用
for spine in ax.spines.values():
答案 1 :(得分:1)