【问题标题】:Gradient to <td> cell acording to percentage??Percentage is calculated by some array values根据百分比渐变到<td>单元格??百分比是通过一些数组值计算的
【发布时间】:2013-06-27 10:39:05
【问题描述】:

当 x=0.7 时图像表示 70%

注意这个小提琴:http://jsfiddle.net/jayeshjain24/ddfsb/1/

根据框内的值,应该会出现渐变。以下详细信息有一些关于应该做什么的信息:::

Formula------>    (x/1)*100=Percentage.(this determines the % of gradient!!!)
x will vary from 0 to 0.999

其中 x=您在框中看到的值(即 0.06、0.09、0.9 等)。这些值来自 var data,即 array 具有 first element=some random id(ignore this)second element 作为多维或简单数组()!!!您在框中看到的所有值都是第二个参数数组

我想要的是使用上面的公式根据该值计算百分比,然后像我对上图所做的那样以百分比显示它。

COLOR-CODE for above image--->background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(30,87,153,1)), color-stop(67%,rgba(28,31,178,1)), color-stop(80%,rgba(144,192,229,1))); /* Chrome,Safari4+ */

生成自--> http://www.colorzilla.com/gradient-editor/

----------------------------------- ------------简化------------------------------------- ------------

Lets say if value==0.5

如果单元格来自第一行-->那么

  1. 假定蓝色作为父颜色(所以渐变将是蓝色和浅色 蓝色,你可以有任何你想要的父颜色,但渐变应该是 相对)
  2. 使用上述公式转换 0.5 百分比--->给你 50%...所以 50% 深蓝色,然后是 50% 浅蓝色。

【问题讨论】:

  • 不确定我是否理解您的意思。您是要使用由值确定的单一背景颜色来填充单元格,还是要使用渐变作为背景?
  • @LarsKotthoff --->是的,渐变作为单个单元格的背景...因为每个单元格都有不同的值!!!但是数组值决定了我的水平渐变的外观,即给它一个米像外表。我清楚吗??
  • 梯度是如何确定的?开始和结束颜色是什么?单元格的数字代表什么?
  • 基本上我正在制作一个表格图表,有一些超过 10k 值的 json 向我显示了 Google Analytics 命中报告,为简单起见,我减少了这些值!!!第一列有蓝色和以上渐变----第二列有橙色,任何橙色渐变都可以,红色和红色和绿色也是如此。
  • 注意-->我有一些 6 到 7 列,每列都应该有一个父颜色(示例-->红色、橙色、绿色、蓝色)。渐变将根据他们的价值。我面临的问题是我如何提供条件并迭代每个单元格。我说清楚了吗?

标签: javascript json d3.js visualization css


【解决方案1】:

您可以动态生成相同的webkit-gradient 字符串。我已经用我认为你的意思更新了你的 jsfiddle here。相关代码如下。

.style('background', function(d) {
  if(d.value) {
    var col = d3.rgb(colors(d.value[0]));
    return "-webkit-gradient(linear, left top, right top, color-stop(0%," +
            col.darker(3) + "), color-stop(" + (d.value[2] * 100) + "%," +
            col + "), color-stop(100%," + col.brighter(3) + "))";
  } else {
    return "white";
  }
})

.darker().brighter() 方法由 D3 提供并按照他们所说的去做 - 您可能想用自定义的开始/结束颜色替换它们。

【讨论】:

  • Bingooooo!!!!终于...但是渐变可以更锐利一点,以便它们可以表示更准确的值,并且----这就是我的delimma,你怎么能为橙色生成橙色渐变,为蓝色生成蓝色渐变......黄色和绿色也一样
  • 您可以通过将端点移近来使其更清晰 -- jsfiddle.net/ddfsb/4
猜你喜欢
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
  • 2014-01-29
  • 2015-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多