【问题标题】:Plotting multiple scattter plots in the same graph instead of Facet Grids在同一个图中绘制多个散点图而不是 Facet Grids
【发布时间】:2019-03-13 07:10:25
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python seaborn


    【解决方案1】:

    您可以尝试使用 seaborn 的 scatter plot 功能。它允许定义xyhuestyle,甚至size。这提供了数据的 5D 视图。有时,人们喜欢根据相同的变量制作huestyle,以获得更好看的图表。

    示例代码(不是我的,因为 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 scatter plot 也很有帮助。因为您可以使用不同的标记/颜色/大小在同一个图上绘制多个数据。 请参阅this 示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 2021-05-16
      • 2020-04-28
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多