Libreoffice散点图与不同的类

时间:2017-11-10 14:56:19

标签: scatter-plot libreoffice libreoffice-calc

我想要绘制一些2D点,但每个点都属于一个类。 在进行散点图时,我希望每个类都使用不同的颜色或符号进行绘制,因此我可以区分它们(理想情况下,我还想控制分配给每个类的颜色和符号)

这是我的数据

enter image description here

这就是我对散点图的看法:

enter image description here

这就是我想要的(无需手动创建新数据系列)

enter image description here

3 个答案:

答案 0 :(得分:1)

对于颜色,请使用气泡图并设置Fill Color data range。显然,Scatter不能这样做。

为了说明,请从以下数据开始。具有大气泡大小的最后一行的原因是使所有其他气泡相对较小,如https://peltiertech.com/Excel/Charts/ControlBubbleSizes.html所述。

X       Y       Class   Color       Bubble Size
0.10    0.10    1       255         1
0.11    0.10    1       255         1
0.10    0.12    1       255         1
0.11    0.11    1       255         1
0.20    0.20    2       16711680    1
0.21    0.20    2       16711680    1
0.20    0.22    2       16711680    1
0.21    0.21    2       16711680    1
0.15    0.15    3       16776960    1
0.16    0.15    3       16776960    1
0.16    0.15    3       16776960    1
0.15    0.16    3       16776960    1
0.20    0.05    0       0           100

选择A1到B14,然后转到插入 - >图表 - >泡沫。按Next,Next。设置这些范围。

Fill Color    $Sheet1.$D$1:$D$14
Bubble Sizes  $Sheet1.$E$1:$E$14
X-Values      $Sheet1.$A$1:$A$14
Y-Values      $Sheet1.$B$1:$B$14

data ranges

按“下一步”,选中显示网格:X轴,然后取消选中显示图例。最后,按完成。

现在需要隐藏大的黑色泡沫。要执行此操作,请双击图表,然后右键单击气泡。按住 Shift 可以更容易选择单个气泡。

format data point

选择格式化数据点,按“无”,然后按“确定”。

最后一项改进是为每个类的颜色设置一个表。在G1到H4中添加以下数据。

Class   Color
1       =COLOR(0,0,255)
2       =COLOR(255,0,0)
3       =COLOR(255,255,0)

然后将D2的公式设置为=VLOOKUP(C2,G$2:H$4,2)并填充到D13。 (D14可以留在0,黑色)。

似乎气泡图不允许图标使用不同的符号。因此,如果需要使用不同的符号,可能需要使用散点图和format each data point manually,或者为每个类使用一个系列。

对于大量数据,宏可能会这样做。如果你想尝试这个问题而在这个论坛上发帖提问,因为我对格式化图表的宏有一些经验。

答案 1 :(得分:0)

您需要将Y数据系列放在不同的列中,每个分组值一个。

答案 2 :(得分:0)

接受的答案非常有效,作为我需要为连续数据生成彩色散点图的起点,而不是 OP 要求的不同类中的数据。我有一个模型中的 Strike、Dip 和 Likelihood 值的 3 列表,并希望像这样绘制它们,其中每个点的颜色由似然值决定:

enter image description here 为此,需要对已接受的答案进行一次添加和两次修改:

  • 添加一个 4 列(或更好的 5 列——请参阅下面的编辑*)颜色查找表,可能在单独的工作表上,第一列是颜色索引号(0、1、2、. .. N) 和接下来的三列给出了用于每种颜色的 [0..255] 范围内的红色、绿色和蓝色颜色值;选择此表并give it a name 像“colortable”。这里的N代表你的表格的最大颜色索引(颜色总数为N+1);在我的示例中,N 通常为 255,但如果您不需要这么多颜色,它可以更小。对于要使用的 RGB 值,我有工具可以生成不同颜色的“渐变”,例如“伪色”(在我的示例中使用)、“温度”等;如果您还没有这样的工具,还有 online generators 和桌面 tools
  • 将接受答案中的“class”列修改为[0..N]范围内的颜色索引值;最简单的方法是通过将颜色索引计算为 INT(N * (datavalue - MIN(datavalues)) / (MAX(datavalues) - MIN(datavalues)),在整个颜色范围内线性“拉伸”数据值。对于我的数据,对于 C 列中的似然值,我使用了这个公式(对于 D 列中的第 2 行):=INT(255*(C2-MIN(C:C))/(MAX(C:C)-MIN(C:C) )).
  • 修改“颜色”列以使用三个(或更好,只有一个 - 请参阅下面的编辑*)查找颜色查找表来组成颜色,一个查找每个 Red、Green 和 Blue 组件。在我的示例中,使用 D 列中的 colorindex,第 2 行中的颜色公式为: =COLOR(VLOOKUP(D2, colortable, 2), VLOOKUP(D2, colortable, 3), VLOOKUP(D2, colortable, 4) ).

将新公式复制到所有数据行中,瞧!

*编辑注意:进一步思考,在颜色查找表中包含第五列更有效,您可以在其中计算该索引的颜色(例如,=COLOR(B1, C1, D1) 用于在 A 列中具有索引且在 B、C 和 D 列中具有 RGB 值的表;将第五列包含在命名范围“colortable”中,然后只需要一个单个 VLOOKUP 来获取每个数据值的颜色(例如,=VLOOKUP(D2, colortable, 5))。< /p>