我正在尝试使用Chart.js绘制一个饼图。我的值来自一个数据库,因此我不知道数据库中会有多少个值。在这里,我想为每个值设置一个唯一的颜色。下面是我的示例。
var pieData = [
{
value: 20,
color:"#878BB6"
},
{
value : 40,
color : "#4ACAB4"
},
{
value : 10,
color : "#FF8153"
},
{
value : 30,
color : "#FFEA88"
}
];
var pieOptions = {
segmentShowStroke : false,
animateScale : true
}
var countries= document.getElementById("countries").getContext("2d");
new Chart(countries).Pie(pieData, pieOptions);
目前,在上面的例子中,我已经设置了硬编码值,但在我的例子中,数据(Json)来自DB。
4条答案
按热度按时间wr98u20j1#
我创建了一个简单的颜色系列,其中包含15种不同的颜色。
它们不是随机选择的。相反,颜色的选择是为了最大化相邻颜色之间的差异。
您仍然可以创建数据点少于15个的图表,并且不会生成警告。
下面是代码:
这是html:
如果你想玩它,这里是jsfiddle上的代码。
我希望这会有帮助:)
eqfvzcg82#
首先,有很多色盲的人在那里。这里有一个很好的文章图表和色盲:Finding the Right Color Palettes for Data Visualizations
这将使用Chart.js 2.4.0
我正在计算渐变中的不同颜色,如下所示:
这给了一个很好的整体外观。我从上面的链接中借用了调色板。我只测试了圆环图、条形图和折线图,但是添加其他类型应该很容易。你也可以很容易地制作自己的渐变。
你可以找到一个jsfiddle here。
于飞:
Javascript语言:
这将给予如下结果:
bqjvbblv3#
您可以循环pieData数组并为颜色值设置随机值。
您可以使用类似“rgb(230,0,0)”的值设置此值,并随机生成绿色蓝整数值。
大概是这样的:
查看example jsfiddle here,其中包含随机值和随机颜色。(运行它几次,了解它如何显示不同的数据集。)
或者你可以定义一个预先定义的颜色数组,然后使用它。考虑到一个超过50个项目的饼图不是很容易阅读,所以默认的50个项目的列表可能就可以了。
new9mtju4#
不要浪费时间创建一个随机生成器,而是选择一些明亮漂亮的颜色来循环。
此函数采用任意大小,并使用
pallet
数组生成一个背景颜色数组。然后,您可以通过调用此函数来设置背景颜色,并将数据的大小作为参数传递。
这样,您的颜色总是很漂亮,并且每个数据元素都被分配了一个值。