基于 Seaborn 中的散点图绘制热图
Plotting a heatmap based on a scatterplot in Seaborn
有什么方法可以根据散点图在 seaborn 中绘制热图?例如,我有以下散点图,并希望以热图中较暗的点显示散点图中更拥挤的区域的方式绘制相应的热图。
您可以再添加一个变量来跟踪其附近的点数。然后在散点图中使用该可变广告颜色。
matplotlib.pyplot.hist2d
will accomplish this in "regular" matplotlib. It looks like seaborn.histplot
也可以做到这一点(向下滚动示例,它讨论了在指定 x
和 y
参数时制作双变量直方图)
sns.histplot(x=x_data, y=y_data)
would create a 2d histogram of the given data. sns.kdeplot(x=x_data, y=y_data)
会平均这些值,创建二维概率密度函数的近似值。
这是 3 个图之间的比较,使用 iris 数据集。
import matplotlib.pyplot as plt
import seaborn as sns
fig, (ax1, ax2, ax3) = plt.subplots(ncols=3, figsize=(15, 4), sharex=True, sharey=True)
iris = sns.load_dataset('iris')
sns.set_style('darkgrid')
sns.scatterplot(x=iris['sepal_length'], y=iris['sepal_width'], ax=ax1)
sns.histplot(x=iris['sepal_length'], y=iris['sepal_width'], ax=ax2)
sns.kdeplot(x=iris['sepal_length'], y=iris['sepal_width'], fill=True, ax=ax3)
ax1.set_title('scatterplot')
ax2.set_title('histplot')
ax3.set_title('kdeplot')
plt.tight_layout()
plt.show()
有什么方法可以根据散点图在 seaborn 中绘制热图?例如,我有以下散点图,并希望以热图中较暗的点显示散点图中更拥挤的区域的方式绘制相应的热图。
您可以再添加一个变量来跟踪其附近的点数。然后在散点图中使用该可变广告颜色。
matplotlib.pyplot.hist2d
will accomplish this in "regular" matplotlib. It looks like seaborn.histplot
也可以做到这一点(向下滚动示例,它讨论了在指定 x
和 y
参数时制作双变量直方图)
sns.histplot(x=x_data, y=y_data)
would create a 2d histogram of the given data. sns.kdeplot(x=x_data, y=y_data)
会平均这些值,创建二维概率密度函数的近似值。
这是 3 个图之间的比较,使用 iris 数据集。
import matplotlib.pyplot as plt
import seaborn as sns
fig, (ax1, ax2, ax3) = plt.subplots(ncols=3, figsize=(15, 4), sharex=True, sharey=True)
iris = sns.load_dataset('iris')
sns.set_style('darkgrid')
sns.scatterplot(x=iris['sepal_length'], y=iris['sepal_width'], ax=ax1)
sns.histplot(x=iris['sepal_length'], y=iris['sepal_width'], ax=ax2)
sns.kdeplot(x=iris['sepal_length'], y=iris['sepal_width'], fill=True, ax=ax3)
ax1.set_title('scatterplot')
ax2.set_title('histplot')
ax3.set_title('kdeplot')
plt.tight_layout()
plt.show()