使用Plotly定义饼图切片颜色

时间:2015-09-06 03:23:10

标签: javascript plotly

我尝试为某些值/切片创建特定颜色,但无法在其上找到大量文档。我知道它可能用于条形图等,甚至是Javascript中的饼图,其中一个示例有一个颜色选项,但修改它对我没有任何作用。

这就是我所拥有的:

pie_chart = {
             'data': 
                     [
                     {     'labels': ['V0', 'V1', 'V2', 'V3', 'V4', 'V5', 'V6', 'V7', 'V8', 'V9'],
                           'values': [v0, v1, v2, v3, v4, v5, v6, v7, v8, v9],
                           'marker': {'colors': [
                                                 'rgb(0, 204, 0)',  # Green
                                                 'rgb(255, 255, 0)',  # Yellow
                                                 'rgb(118, 17, 195)',  # Purple
                                                 'rgb(0, 48, 240)'  # Blue
                                                 'rgb(240, 88, 0)'  # Orange
                                                 'rgb(215, 11, 11)'  # Red
                                                 'rgb(11, 133, 215)'  # Light Blue
                                                 'rgb(0, 0, 0)'  # Black
                                                 'rgb(0, 0, 0)'
                                                 'rgb(0, 0, 0)'
                                                ]
                                     },
                           'type': 'pie',
                           'name': "Gym grades",
                           'hoverinfo':'label+percent+name',
                           'textinfo':'none'
                      }
                      ],

             'layout': {'title': 'Grades in gym'}

             }

    url = py.plot(pie_chart, validate=False, filename='Gym Grades')

问题:颜色没有变化('标记'没有效果)

问题:我应该采用不同的方式修改颜色

2 个答案:

答案 0 :(得分:2)

Plotly可以很好地隐藏你的错误并自动完成缺失的颜色。在彩色饼图的工作示例下面几乎没有逗号。

正如Meglio所提供的,sort属性可以设置为false,但这只会更改图例和图表的顺序。颜色由数组的顺序设置。



pie_chart = {
  'data': [{
    'labels': ['V0', 'V1', 'V2', 'V3', 'V4', 'V5', 'V6', 'V7', 'V8', 'V9'],
    'values': [55, 22, 31, 32, 33, 45, 44, 42, 12, 67],
    'marker': {
      'colors': [
        'rgb(0, 204, 0)',
        'rgb(255, 255, 0)',
        'rgb(118, 17, 195)',
        'rgb(0, 48, 240)',
        'rgb(240, 88, 0)',
        'rgb(215, 11, 11)',
        'rgb(11, 133, 215)',
        'rgb(0, 0, 0)',
        'rgb(0, 0, 0)',
        'rgb(0, 0, 0)'
      ]
    },
    'type': 'pie',
    'name': "Gym grades",
    'hoverinfo': 'label+percent+name',
    'sort': false,
  }],

  'layout': {
    'title': 'Grades in gym'
  }

}

Plotly.newPlot('plot', pie_chart.data, pie_chart.layout);

<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<div id="plot"> </div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

问题可能是默认情况下,所有值v0,v1,...都按降序排序,因此最大的值首先出现。它们在之后将“颜色”应用于它们。因此,值#4(根据您的颜色定义为蓝色)可能不会排在第4位。

解决方案是使用sort属性手动订购数据并关闭自动排序