按目标改进散点图的“matplotlib.pyplot”语法[重复]

Posted

技术标签:

【中文标题】按目标改进散点图的“matplotlib.pyplot”语法[重复]【英文标题】:Improve My `matplotlib.pyplot` Syntax for Scatter Plot by Target [duplicate] 【发布时间】:2021-11-21 07:07:03 【问题描述】:

我有三维数据,其中一维是分类的:lengthwidthtarget。为简单起见,假设target 可以采用0, 1, 2 中的值。我想绘制length vs width“by”target。这些点将根据目标值具有不同的颜色和形状。

我可以在matplotlib.pyplot 中执行此操作,导入为plt,使用以下语法。我假设 pandas DataFrame df 具有我强加的结构。

X0 = df.query("target == 0.0").drop("target", axis = 1)
X1 = df.query("target == 1.0").drop("target", axis = 1)
X2 = df.query("target == 2.0").drop("target", axis = 1)

ax = plt.axes()
X0.plot(x = "length", y = "width", kind = "scatter", ax = ax, color = "red")
X1.plot(x = "length", y = "width", kind = "scatter", ax = ax, color = "blue")
X2.plot(x = "length", y = "width", kind = "scatter", ax = ax, color = "green")
plt.show()

我相信我们都同意这是 bbaaaddd

几年前,我曾经在R做一些编程。 ggplot2 包允许以下形式的语法

ggplot(df, x = length, y = width, shape = target).geom_point().

可以将shape = target 替换为colour = target 以根据target 的值获得不同的颜色。

我想要pyplot 中的类似内容。尽我所能,我无法在文档或在线资源中找到此类信息。我确定它一定在某处。就是没找到。。。


编辑。 此问题已标记为重复。这些副本有助于解决一些问题,但它们并不能解决上面提出的所有问题。特别是,没有讨论形状。我发现最接近的是以下问题:How to change the shape of the marker depending on a column variable?。还有其他类似的问题。但与简单的shape = "target" 调用相比,这非常难看。

有一个名为 plotnine 的“ggplot for python”包,但它似乎已经 5 年没有更新了。你也似乎需要做from plotnine import *之类的事情,我当然不会对此感到兴奋。

也许我所追求的功能在pyplot 中不存在。如果是这样,这就是生活! :)


编辑。 @Trenton McKinney 建议使用 seaborn,导入为 sns。这有一个hue 选项,可以精确地进行不同的着色。

sns.scatterplot(data = df, x = "length", y = "width", hue = "target")

这仍然没有回答我关于形状的问题——(部分)“重复”也没有。但是,sns.scatterplot 也有一个style 选项,其描述与hue 相同,只是“不同颜色”被“不同标记”替换。

sns.scatterplot(data = df, x = "length", y = "width", style = "target")

为什么不发疯,同时使用huestyle

我猜正确答案是“不要在matplotlib 中执行;在seaborn 中执行”。希望将错误标记为重复的问题得到解决,然后我可以添加包含完整详细信息的答案。

【问题讨论】:

【参考方案1】:

怎么样:

for target in [0.0, 1.0, 2.0]:
    df.query("target == " + str(target)).drop("target", axis = 1).plot(x = 
        "length", y = "width", kind = "scatter")
plt.show()

【讨论】:

以上是关于按目标改进散点图的“matplotlib.pyplot”语法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

即昨天例子的再次改进

散点图的公式表示法产生意外结果

散点图的非参数分位数回归曲线

散点图的绘制

Android图表库MPAndroidChart——散点图的孪生兄弟气泡图

请教Echarts中散点图的tooltips问题