jlt*_*199 8 python matplotlib seaborn
我想在Seaborn创建一个FacetGrid
我的代码目前是:
g = sns.FacetGrid(df_reduced, col="ActualExternal", margin_titles=True)
bins = np.linspace(0, 100, 20)
g.map(plt.hist, "ActualDepth", color="steelblue", bins=bins, width=4.5)
Run Code Online (Sandbox Code Playgroud)
这给了我的图
现在,而不是"ActualExternal = 0.0"和"ActualExternal = 1.0"我想要标题"内部"和"外部"
并且,而不是"ActualDepth"我希望xlabel说"Percentage Depth"
最后,我想添加一个"缺陷数量"的标签.
我尝试过谷歌搜索,并尝试了一些东西,但到目前为止还没有成功.你能帮帮我吗?
谢谢
Imp*_*est 11
您可以通过访问FacetGrid(g = sns.FacetGrid(...)
)的轴g.axes
.有了这个,你可以自由地使用任何matplotlib方法来调整情节.
更改标题:
axes = g.axes.flatten()
axes[0].set_title("Internal")
axes[1].set_title("External")
Run Code Online (Sandbox Code Playgroud)
更改标签:
axes = g.axes.flatten()
axes[0].set_ylabel("Number of Defects")
for ax in axes:
ax.set_xlabel("Percentage Depth")
Run Code Online (Sandbox Code Playgroud)
请注意,我更喜欢上面FacetGrid
的内部g.set_axis_labels
和set_titles
方法,因为它更明显地标记了哪些轴.
jak*_*vdp 10
虽然您可以使用matplotlib命令遍历轴并单独设置标题,但使用seaborn的内置工具来控制标题更为清晰.例如:
# Add a column of appropriate labels
df_reduced['measure'] = df_reduced['ActualExternal'].replace({0: 'Internal',
1: 'External'}
g = sns.FacetGrid(df_reduced, col="measure", margin_titles=True)
g.map(plt.hist, "ActualDepth", color="steelblue", bins=bins, width=4.5)
# Adjust title and axis labels directly
g.set_titles("{col_name}") # use this argument literally
g.set_axis_labels(x_var="Percentage Depth", y_var="Number of Defects")
Run Code Online (Sandbox Code Playgroud)
无论您是否具有1D或2D刻面,这都具有不需要修改的优点.
设置多个标题的另一种方法是:
titles = ['Internal','External']
for ax, title in zip(g.axes.flatten(),titles):
ax.set_title(title)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8710 次 |
最近记录: |