【问题标题】:stating the co-ordinates of a specific data point in scatter plot说明散点图中特定数据点的坐标
【发布时间】:2020-09-03 20:51:59
【问题描述】:

我是python的初学者。我正在尝试使用 seaborne 库以分面网格的形式绘制一个 CSV 文件。

import matplotlib.pyplot as plt
import seaborn as sns
g = sns.FacetGrid(df, col="Gamma1",col_wrap=6,sharex=False)
g = (g.map(plt.scatter, "ARMSE", "Frobenius_norm_correlation").add_legend())
plt.subplots_adjust(top=0.9)
g.fig.suptitle('Friedman_chain')

对于分面网格中的每个散点图,我想用 ARMSE 的最小值来说明数据点的坐标,并用与给定散点图中其他数据点不同的颜色标记该点。你能建议我怎么做吗?

数据框 df 包含 ARMSE、Gamma1、Frobenius_norm_correlation 列。 我在下面附上当前图的图像:

【问题讨论】:

  • 您的问题中 ARMSE 是什么意思?
  • 它是数据框df中的一列
  • 所以你的意思是你想要不同颜色的 Gamma1 和不同颜色的 ARMSE?
  • 我已经更新了这个问题。我的意思是对于分面网格中的每个散点图,我想用 ARMSE 的最小值标记点的坐标,并用与散点图中的其他数据点相比不同的颜色标记它。

标签: python seaborn scatter-plot facet-grid


【解决方案1】:

您可以在预处理过程中创建一个标识最小数据点的列,并将该列的名称传递给seaborn

例如,取一个样本数据集:

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

df = pd.DataFrame(data={
    "group": list("ABCDEFGHIJ") * 10,
    "y": np.random.normal(loc=1, scale=1, size=100),
    "x": np.array([[x] * 10 for x in range(10)]).flatten()
})

# new column identifying the minimum value
df["min"] = df["y"] == df.groupby("group")["y"].transform(min)

g = sns.FacetGrid(df, col="group", hue="min", col_wrap=5, sharex=True)
g = (g.map(plt.scatter, "x", "y").add_legend())
plt.subplots_adjust(top=0.9)
g.fig.suptitle('Min value detection')

【讨论】:

  • 感谢您的帮助。有没有办法可以在散点图中注释该点的坐标?
  • 根据this 的帖子判断,您可能需要编写一个自定义函数来在绘制每个方面时添加注释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-20
相关资源
最近更新 更多