使用Plotly定义饼图切片颜色

6
我想为特定的数值/片段创建特定的颜色,但找不到太多相关文档。我知道在柱状图等图表中可以实现,甚至在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')

问题:颜色没有改变(“marker”没有效果)。
问题:我是否应该以不同的方式修改颜色?

1
欢迎来到Stack Overflow!当您有一个代码示例无法正常工作时,重要的是要非常清楚地解释问题所在——它现在具体做了什么,应该具体做什么。这一点从您的问题中目前并不清楚。 - Chris Beck
问题:颜色没有改变('marker'没有效果)- 问题:我应该以不同的方式修改颜色吗? - Zach Kramer
好的,你应该将那部分编辑到问题中。 - Chris Beck
你的例子对我有效。这是绘图网址:https://plot.ly/~christopherp/1131/grades-in-gym/。你得到的和我得到的不一样吗? - Chris P
嗯...前4个(v0-v3)似乎是正确的颜色,但其余的都是错误的。作为参考,最后3个应该是黑色。也许现在还没有办法。 - Zach Kramer
2个回答

7

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>


1
问题可能是默认情况下,所有的值 v0、v1 等都按降序排列,因此最大值首先出现。它们在“应用”颜色之后排序。因此,根据您的颜色定义,蓝色的值 #4 可能不是第 4 个。
解决方案是手动对数据排序,并使用 sort 属性关闭自动排序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接