【发布时间】:2011-05-30 17:23:10
【问题描述】:
我希望能够以编程方式控制饼图中各部分的颜色。理想情况下,我的图表将基于一个 3 列的表,其中的列是:数据值、标签和饼图颜色值。颜色值与在 Access 表单属性中看到的数字相同。
谢谢,
史蒂夫
【问题讨论】:
标签: excel colors charts controls
我希望能够以编程方式控制饼图中各部分的颜色。理想情况下,我的图表将基于一个 3 列的表,其中的列是:数据值、标签和饼图颜色值。颜色值与在 Access 表单属性中看到的数字相同。
谢谢,
史蒂夫
【问题讨论】:
标签: excel colors charts controls
Sub a()
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SeriesCollection(1).Points.Item(1).Interior.ColorIndex = 7
End Sub
你可以通过我在This Other Answer发布的技巧来学习ColorIndex所代表的颜色
【讨论】:
.ColorIndex 是 Excel 2003 中的一种过时方法,当时 Excel 的颜色受到更多限制。可以使用.Color,直接传入RGB值。
也许这几行有什么?
Dim ws As Worksheet
Dim sh As Shape
Set ws = Sheet2
Set sh = ws.Shapes.AddChart '.Select
With sh.Chart
.ChartType = xlPie
.SetSourceData Source:=Range("Sheet1!$A$1:$B$3")
For i = 1 To .SeriesCollection(1).Points.Count
With .SeriesCollection(1).Points(i).Format.Fill
.ForeColor.RGB = Range("C" & i).Interior.Color
.Solid
End With
Next
End With
这将允许您使用填充按钮向单元格添加颜色并将其用于段。
【讨论】:
首先,我知道这是可以做到的。 BeGraphic 有一个免费的 Excel 插件,它具有在电子表格中设置图表元素颜色的功能。见:
这使用了一个插件。我必须说结果令人印象深刻。就我自己而言,我需要更多的 Excel-native,许多其他人会发现这个选项是顶级的。
Remou 中的 VB 选项和 begraphic 的插件可以做到这一点。对我来说,或者至少是当前的项目,我需要一个基于 Excel 的解决方案(尽可能多地实用和可能)。与此同时,您和我本人可以通过 VB、VBA、.Net 和/或宏找到解决方法。访问 Jon P 的网站了解可用选项。
如果我发现 'more' - 我会在此查询中将其传回。
阿罗哈,
会
【讨论】:
也许它可以使用 VBA 来完成,但在这里我提出另一种解决方案,让您使用 JavaScript 来做到这一点。您可以使用名为 Funfun 的免费 Excel 加载项,它允许您直接在 Excel 中使用 JavaScript 代码。话虽如此,您可以使用 HighCharts.js 或 D3.js 等库来绘制饼图并单独控制颜色。这是我根据您的描述制作的示例。
饼图不同部分的颜色由电子表格中第三列的数据决定。在这个例子中,我使用 HighCharts.js 来控制绘制这个图表。控制颜色的具体代码如下所示。
var pieColors =[];
for(var i=1;i<data.length;i++){
switch(parseInt(data[i][2])){
case 0:
pieColors.push('blue');
break;
case 1:
pieColors.push('green');
break;
case 2:
pieColors.push('orange');
break;
case 3:
pieColors.push('purple');
break;
case 4:
pieColors.push('red');
break;
case 5:
pieColors.push('brown');
break;
}
}
在这个例子中,我只是手动选择了六种颜色,但是你可以很容易地通过 JavaScript 代码生成随机颜色或特定范围内的颜色。
Funfun 插件还有一个在线编辑器,您可以在其中使用您的代码和结果进行测试。您可以在下面的链接中查看详细代码和此示例。
https://www.funfun.io/1/#/edit/5a4f4680c3a8a526caeec989
一旦您对结果感到满意,您可以使用上面的链接轻松地将结果加载到 Excel 中。当然,首先,您需要通过 Insert - Office Add-ins 将 Funfun 加载项添加到 Excel 中。下面是一些屏幕截图,展示了如何将示例加载到 Excel 中。
披露:我是 Funfun 的开发者
【讨论】: