在颜色条周围添加黑框
Add a black frame around a colorbar
我在两个单独的轴上创建了一个热图和一个颜色条。我想在每个地块周围创建一个黑框。我在 ax0(热图)上取得了成功,但对于 ax1(颜色条)它不起作用。见图:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(np.random.randn(10, 2), columns=list('AB'))
fig, (ax0, ax1) = plt.subplots(ncols=2, figsize=(10, len(df) / 5.2), gridspec_kw={'width_ratios': [15, 15]})
sns.heatmap(df, annot=False, cmap='RdYlGn', cbar_ax=ax1, ax=ax0)
for _, spine in ax1.spines.items():
spine.set_visible(True)
for _, spine in ax0.spines.items():
spine.set_visible(True)
Seaborn默认设置颜色条的轮廓线宽为零1.
您可以为每个 ax
中的所有书脊设置线宽 (lw
) 和边缘颜色,如下所示:
fig, (ax0, ax1) = plt.subplots(ncols=2)
sns.heatmap(df, annot=False, cmap="RdYlGn", cbar_ax=ax1, ax=ax0)
for spine in ax0.spines.values():
spine.set_visible(True)
for spine in ax1.spines.values():
spine.set(visible=True, lw=.8, edgecolor="black")
产生:
颜色条也有一个 outline
书脊,所以 ax1
只需这条线就可以完成。
ax1.spines["outline"].set(visible=True, lw=.8, edgecolor="black")
我在两个单独的轴上创建了一个热图和一个颜色条。我想在每个地块周围创建一个黑框。我在 ax0(热图)上取得了成功,但对于 ax1(颜色条)它不起作用。见图:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(np.random.randn(10, 2), columns=list('AB'))
fig, (ax0, ax1) = plt.subplots(ncols=2, figsize=(10, len(df) / 5.2), gridspec_kw={'width_ratios': [15, 15]})
sns.heatmap(df, annot=False, cmap='RdYlGn', cbar_ax=ax1, ax=ax0)
for _, spine in ax1.spines.items():
spine.set_visible(True)
for _, spine in ax0.spines.items():
spine.set_visible(True)
Seaborn默认设置颜色条的轮廓线宽为零1.
您可以为每个 ax
中的所有书脊设置线宽 (lw
) 和边缘颜色,如下所示:
fig, (ax0, ax1) = plt.subplots(ncols=2)
sns.heatmap(df, annot=False, cmap="RdYlGn", cbar_ax=ax1, ax=ax0)
for spine in ax0.spines.values():
spine.set_visible(True)
for spine in ax1.spines.values():
spine.set(visible=True, lw=.8, edgecolor="black")
产生:
颜色条也有一个 outline
书脊,所以 ax1
只需这条线就可以完成。
ax1.spines["outline"].set(visible=True, lw=.8, edgecolor="black")