【发布时间】:2021-10-15 13:21:36
【问题描述】:
我有四个 5x5 矩阵,我想将它们与一个“原始”矩阵进行比较。我计算了每个矩阵的误差,生成了一个新的 5x5 矩阵,其中每个条目都有百分比误差。
例如:Matrix_W
Ac Bc Cc Dc Ec
Ar 0.04 0.03 0.02 0.05 0.06
Br 0.01 0.02 0.04 0.02 0.01
Cr 0.03 0.05 0.09 0.08 0.01
Dr 0.07 0.09 0.05 0.03 0.01
Er 0.01 0.03 0.05 0.05 0.08
(r 代表行,c 代表列)
我将其中四个矩阵存储在 pandas DataFrame 中:
Ac Bc Cc Dc Ec rowValue mType
0.04 0.03 0.02 0.05 0.06 Ar W
0.01 0.02 0.04 0.02 0.01 Br W
0.03 0.05 0.09 0.08 0.01 Cr W
0.07 0.09 0.05 0.03 0.01 Dr W
0.01 0.03 0.05 0.05 0.08 Er W
0.04 0.04 0.03 0.01 0.02 Ar X
0.09 0.07 0.05 0.04 0.01 Br X
0.01 0.02 0.06 0.05 0.07 Cr X
……
0.06 0.08 0.04 0.03 0.09 Er Z
现在,我想使用 seaborn 创建一个 5x5 散点图矩阵来绘制四个矩阵中每一个的误差。与此类似,只有 5 列和 5 行:
因此,散点图矩阵的单元格 0,0(左上角)应显示四个矩阵的 Ac、Ar 位置的误差图。散点图矩阵的 x 和 y 轴是独立的:x_vars = Ac up to Ec; y_vars= Ar 到 Er。 hue 应该依赖于 mType 变量。
以下代码没有产生所需的输出:
Import Seaborn as sns
g = sns.PairGrid(df, x_vars=df.columns[:-2], y_vars=df[‚rowValue‘], hue=df[‚mType‘])
g.map(sns.scatterplot)
我得到的结果是一个 20x5 的矩阵,它似乎没有独立的 x 轴和 y 轴。我不确定问题是我如何将数据存储在 DataFrame 中,还是我必须事先做其他事情才能达到预期的结果。非常感谢任何帮助!
【问题讨论】:
标签: python pandas dataframe matplotlib seaborn