我知道searbons
s
中的scatterplot
参数可以控制点的大小。例如:
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame()
df['Y_LOCATION'] = [1, 1, 1, 2, 2, 4]
df['X_LOCATION'] = [1, 2, 3, 4, 3, 1]
df['VALUE'] = [-0.45, -0.14, -0.12, -0.36, -0.48, -0.20]
sns.set(rc={'figure.figsize':(40,20)})
sns.set(font_scale=2)
sns.scatterplot(df.Y_LOCATION, df.X_LOCATION, df.VALUE, s=800, palette = "Greens_r")
但是,此参数似乎对图例中显示的点的大小没有影响。这些如何调整?
您可以通过获取图例中点的句柄并对其调用
set_sizes()
来增加这些点的大小。默认情况下它们是 [36],将其乘以 10,面积(不是直径)就会增加 10 倍。
示例:
ax = sns.scatterplot(x = df.Y_LOCATION, y = df.X_LOCATION, hue = df.VALUE, s=800, palette = "Greens_r")
handles, labels = ax.get_legend_handles_labels()
for dot in handles:
dot.set_sizes(dot.get_sizes() * 10)
plt.legend(handles, labels)
另请参阅:如何在seaborn散点图图例中调整太大的点尺寸?
有关 PathCollection.set_sizes() 的文档:https://matplotlib.org/stable/api/collections_api.html#matplotlib.collections.PathCollection.set_sizes