首页 > 解决方案 > 在同一个图中绘制多个散点图而不是 Facet Grids

问题描述

目前,我在 seaborn 中有一些使用 Facet Grids 的图。我有以下代码:

g = sns.FacetGrid(masterdata1,col = "courseName")
g=g.map(plt.scatter, "SubjectwisePercentage", "SemesterPercentage")

上面的代码绘制了一个学期内不同课程的学科百分比与学期百分比。如何在单个图中绘制不同的散点图,而不是在构面网格上绘制多个图?在单个图中,每个课程的绘制点应该是不同的颜色。

有在线链接指定如何在单个图中绘制不同的数据集。但是我需要使用相同的数据集。因此,我需要指定col="courseName"或等效的东西,以在单个图中绘制课程数据。我不确定如何做到这一点。预先感谢您的帮助。

标签: pythonseaborn

解决方案


您可以尝试使用 seaborn 的散点图功能。它允许定义 , ,x和,甚至。这提供了数据的 5D 视图。有时,人们喜欢制作并基于相同的变量以获得更好看的图表。yhuestylesizehuestyle

在此处输入图像描述 在此处输入图像描述

示例代码(不是我的,因为 seaborn 文档几乎解释了所有内容)。

import seaborn as sns
import matplotlib.pyplot as plt


sns.set(style="ticks", color_codes=True)
tips = sns.load_dataset("tips")
# g = sns.FacetGrid(tips, col="sex", hue="time", palette="Set1",
#                   hue_order=["Dinner", "Lunch"])
# g= (g.map(plt.scatter, "total_bill", "tip")).add_legend()

# sns.scatterplot(data=tips, x="total_bill", y="tip", hue='time', style='sex')
sns.scatterplot(data=tips, x="total_bill", y="tip", hue='time', style='sex', size='size')
plt.show()

matplotlib散点图也很有帮助。因为您可以使用不同的标记/颜色/大小在同一个图上绘制多个数据。请参阅示例。

在此处输入图像描述


推荐阅读