【问题标题】:Different color bar chart from eCharts来自 eCharts 的不同颜色条形图
【发布时间】:2018-03-08 11:46:14
【问题描述】:

我试图创建一个不同的颜色条。周一蓝色,周二红色,周三绿色。请帮我怎么写。 Line itemStyle: {normal: {color: 'blue','red', 'green'}},没用。
代码来自echarts网站。

 <html style="height: 100%">
       <head>
           <meta charset="utf-8">
       </head>
       <body style="height: 100%; margin: 0">
           <div id="container" style="height: 100%"></div>
           <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>
           <script type="text/javascript">
    var dom = document.getElementById("container");
    var myChart = echarts.init(dom);
    var app = {};
    option = null;
    option = {
        xAxis: {
            type: 'category',
            data: ['Mon', 'Tue', 'Wed']
        },
        yAxis: {
            type: 'value'
        },
        series: [{
            itemStyle: {normal: {color: 'blue'}},
            data: [120, 200, 150],
            type: 'bar'
        }]
    };
    ;
    if (option && typeof option === "object") {
        myChart.setOption(option, true);
    }
           </script>
       </body>
    </html>

【问题讨论】:

    标签: javascript echarts


    【解决方案1】:

    这是我的解决方案:

        var option = {
        xAxis: {
            type: 'category',
            data: ['Mon', 'Tue', 'Wed']
        },
        yAxis: {
            type: 'value'
        },
        series: [{
            data: [
                {
                    value: 120,
                    itemStyle: {color: 'blue'},
                },
                {
                    value: 200,
                    itemStyle: {color: 'red'},
                },
                {
                    value: 150,
                    itemStyle: {color: 'green'},
                }
            ],
            type: 'bar'
        }],
        graph: {
            color: colorPalette
        }
    };
    

    https://plnkr.co/edit/vFK1qeMfMCXGx8Gdn1d8?p=preview

    【讨论】:

    • 谢谢你。你能指出我学习这个的任何好的资源吗?
    • @coudy.one 我怎样才能使它适用于动态数据。如果数据没有固定值。这里用 3 项固定。就我而言,数据是动态的,并且会不时变化..
    • @surazzarus 我添加了一个加载动态数据的示例:plnkr.co/edit/e5Ob1xn4h8VydpGUl3Ax?p=preview 当您单击“渲染”按钮时,图表会读取新数据。
    • @coudy.one 有没有办法在 HTML 中设置数据点并从 HTML 中的数据属性中获取颜色和值?如果不是 ECharts,你知道有哪些 JS Charts 有这个能力吗?
    【解决方案2】:

    最佳解决方案对我不起作用。 From their documentation 似乎 lineStyle 现在有两个子元素,您可以利用“正常”和“强调”。 我不得不像这样修改它以覆盖默认颜色:

        var option = {
        xAxis: {
            type: 'category',
            data: ['Mon', 'Tue', 'Wed']
        },
        yAxis: {
            type: 'value'
        },
        series: [{
            data: [
                {
                    value: 120,
                    itemStyle: { normal: { color: 'blue' } },
                },
                {
                    value: 200,
                    itemStyle: { normal: { color: 'red' } },
                },
                {
                    value: 150,
                    itemStyle: { normal: { color: 'green' } },
                }
            ],
            type: 'bar'
        }],
        graph: {
            color: colorPalette
        }
    };
    

    【讨论】:

      【解决方案3】:

      我在 2019 年 6 月根据值需要不同颜色的解决方案:为不同颜色创建单独的系列,并使用堆叠图表。例如,我需要创建一个图表,其中绿色条表示传递值,黄色条表示失败值。这是我的实现:

      var data = {};
      data.legendData = ['Sales','HR','Engineering'];
      data.greenSeriesData = ['-',96.38,98.43];
      data.yellowSeriesData = [44.23,'-','-'];
      
      var option = {
          title: {
              text: '2019 Progress',
              left: 'center'
          },
          xAxis: {
              type: 'category',
              data: data.legendData
          },
          yAxis: {
              type: 'value',
              axisLabel: {
                  formatter: function (val) {
                      return (val) + '%';
                  }
              }
          },
          series: [{
              data: data.greenSeriesData,
              type: 'bar',
              stack: 'colorbyvalue',
              label: {
                  show: true,
                  position: 'insideTop',
                  formatter: "{c}%",
                  color: '#000000'
              },
              barWidth: 50,
              itemStyle: {
                  color: 'green'
              }
          },
          {
              data: data.yellowSeriesData,
              type: 'bar',
              stack: 'colorbyvalue',
              label: {
                  show: true,
                  position: 'insideTop',
                  formatter: "{c}%",
                  color: '#000000'
              },
              barWidth: 50,
              itemStyle: {
                  color: 'yellow'
              }
          }],
          animation: false
      };
      

      【讨论】:

        【解决方案4】:

        您可能有一个与您每天需要的颜色相对应的数组。

        最初可能是空的,然后您将相关颜色推送到它,具体取决于当天!

          var cars1 = data.data_1;
        
          var color_bar = [];
        
          var text = "";
          var i;
        
          for (i = 0; i < cars1.length; i++)
            {
            if (cars1[i] < 20.35) {
                color_bar.push("red");
                  }  
                else {
              color_bar.push("yellow");
            }
        
          }
        

        并且您为每个数据系列调用相关颜色...

        yAxis: {
                      type: 'value'
                  },
                  series: [{
                      data: 
                      [
                    {
                        value: data.data_1[0],
                        itemStyle: {color: color_bar[0]},
                    },{
                        value: data.data_1[1],
                        itemStyle: {color: color_bar[1]},
                    },{
                        value: data.data_1[2],
                        itemStyle: {color: color_bar[2]},
                    }],
        

        这里我根据值制定了一个例子,但是条件“天”应该没问题。

        我希望这有助于交配。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-10-07
          • 1970-01-01
          • 1970-01-01
          • 2022-01-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多