请考虑以下工作表:
A B C D
1 COMPANY XVALUE YVALUE GROUP
2 Apple 45 35 red
3 Xerox 45 38 red
4 KMart 63 50 orange
5 Exxon 53 59 green
我使用Excel中的散点图函数创建了以下图表:
但是,图表中的每个点都有一个附加属性:GROUP
。有四个组:red
、orange
、black
和green
。我想相应地给每个点着色,这样我也许可以看到一种模式(例如,组green
几乎总是在图表的左侧)。因为我的列表有500行长,所以我无法手动执行此操作。如何自动执行此操作?
7条答案
按热度按时间cnh2zyt31#
非VBA解决方案:
您需要为每个颜色组创建一个附加数据组,以表示该特定组的Y值。您可以使用这些组在图表中创建多个数据集。
以下是使用您的数据的示例:
之后,它应该如下所示:
现在,您可以使用不同的数据集生成图形。下面的图片显示了此示例数据:
您可以将序列
(X;Y)
的值分别更改为B:B ; E:E
、B:B ; F:F
、B:B ; G:G
,以便在添加更多数据时自动更新图形。rks48beu2#
我回答了一个非常相似的问题:
https://stackoverflow.com/a/15982217/1467082
您只需要迭代序列的
.Points
集合,然后就可以根据所需的任何条件分配点的.Format.Fill.ForeColor.RGB
值。已更新
下面的代码将根据屏幕截图为图表着色。这只假设使用了三种颜色。您可以为其他颜色值添加额外的case语句,并将
myColor
的赋值更新为每个颜色值的相应RGB值。wvyml7n53#
如果你对你的x轴文本类别编码,将它们列在一个单独的列中,然后在相邻的列中列出对应于相关文本类别编码的相应变量的绘图点,并只保留对应于非相关文本类别编码的空白单元格,你可以散点图并得到显示的结果。任何问题请告诉我。
ohtdti5x4#
我看到有一个VBA解决方案和一个非VBA解决方案,两者都很好。我想提出我的Javascript解决方案。
有一个名为Funfun的Excel插件,它允许你在Excel中使用javascript、HTML和css。它有一个在线编辑器,嵌入了一个电子表格,你可以在其中建立你的图表。
我用Chart.js为您编写了以下代码:
https://www.funfun.io/1/#/edit/5a61ed15404f66229bda3f44
为了创建这个图表,我在电子表格中输入了我的数据,并用一个json文件读取它,它是
short
文件。我确保将其以正确的格式(
script.js
)放置,以便将其添加到图表中:然后创建散点图,每个点都有指定的颜色和位置:
创建散点图后,我可以通过将URL粘贴到funfun Excel add-in中将其上传到Excel中。
完成后,您可以在Excel中通过更改电子表格中的值来立即更改点的颜色或位置。
如果您想在图表中添加额外的点,只需修改
short
json文件中data
的半径。希望这个Javascript解决方案能有所帮助!
披露:我是Funfun的开发者
2cmtqfgy5#
试试这个:
mpgws1up6#
最近我不得不做一些类似的事情,我用下面的代码解决了它。希望它能有所帮助!
kknvjkwl7#
我找到的一个更简单的解决方案是按颜色对数据进行排序,然后选择不同的数据区域作为它们自己的系列,Excel会自动为它们添加不同的颜色。