Plotly:如何为使用多条轨迹创建的图形设置调色板?

2023-12-26

我使用下面的代码生成具有多个轨迹的图表。 然而,我知道为每条迹线应用不同颜色的唯一方法是使用随机函数,该函数将数字 RGB 用作颜色。

但随机的颜色不利于演示。

我如何在下面的代码中使用调色板颜色而不得到更多随机颜色?

groups53 = dfagingmedioporarea.groupby(by='Area')


data53 = []
colors53=get_colors(50)

for group53, dataframe53 in groups53:
    dataframe53 = dataframe53.sort_values(by=['Aging_days'], ascending=False)
    trace53 = go.Bar(x=dataframe53.Area.tolist(), 
                        y=dataframe53.Aging_days.tolist(),
                        marker  = dict(color=colors53[len(data53)]),
                        name=group53,
                        text=dataframe53.Aging_days.tolist(),
                        textposition='auto',
                        

                        )


    data53.append(trace53)

    layout53 =  go.Layout(xaxis={'title': 'Area', 'categoryorder': 'total descending', 'showgrid': False},
                        
                        yaxis={'title': 'Dias', 'showgrid': False},
                        margin={'l': 40, 'b': 40, 't': 50, 'r': 50},
                        hovermode='closest',
                        template='plotly_white',
                     

                        title={
                                'text': "Aging Médio (Dias)",
                                'y':.9,
                                'x':0.5,
                                'xanchor': 'center',
                                'yanchor': 'top'})
                        

    

figure53 = go.Figure(data=data53, layout=layout53)

关于情节颜色主题的许多问题已经被提出和回答。 参见示例Plotly:如何使用plotly.graph_objects和plotly.express定义图中的颜色? https://stackoverflow.com/questions/63460213/plotly-how-to-define-colors-in-a-figure-using-plotly-graph-objects-and-plotly-e但您似乎明确希望在不使用循环的情况下添加跟踪。 也许是因为痕迹的属性不仅在颜色上不同?据我所知,目前还没有关于如何有效地做到这一点的描述。


答案:

  1. 在下面找到许多可用的调色板dir(px.colors.qualitative), or
  2. 定义你自己的调色板,例如['black', 'grey', 'red', 'blue'], and
  3. 使用一一检索next(palette)对于您决定添加到图形中的每条痕迹。

And next(palette)乍一看可能有点神秘,但使用 Python 可以轻松设置itertools像这样:

import plotly.express as px
from itertools import cycle
palette = cycle(px.colors.qualitative.Plotly)
palette = cycle(px.colors.sequential.PuBu)

现在你可以使用next(palette)并在每次添加跟踪时返回颜色列表的下一个元素。正如上面的代码所示,最好的一点是,颜色会循环返回,因此您永远不会到达列表的末尾,而是在使用完所有颜色一次后从头开始。

示例图:

完整代码:

import plotly.graph_objects as go
import plotly.express as px
from itertools import cycle

# colors
palette = cycle(px.colors.qualitative.Bold)
#palette = cycle(['black', 'grey', 'red', 'blue'])
palette = cycle(px.colors.sequential.PuBu

# data
df = px.data.gapminder().query("continent == 'Europe' and year == 2007 and pop > 2.e6")

# plotly setup
fig = go.Figure()

# add traces
country = 'Germany'
fig.add_traces(go.Bar(x=[country],
                      y = df[df['country']==country]['pop'],
                      name = country,
                      marker_color=next(palette)))

country = 'France'
fig.add_traces(go.Bar(x=[country],
                      y = df[df['country']==country]['pop'],
                      name = country,
                      marker_color=next(palette)))

country = 'United Kingdom'
fig.add_traces(go.Bar(x=[country],
                      y = df[df['country']==country]['pop'],
                      name = country,
                      marker_color=next(palette)))

fig.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Plotly:如何为使用多条轨迹创建的图形设置调色板? 的相关文章

随机推荐

  • R (dplyr):查找行特定范围内的所有行

    我有一个数据集 其中每一行都由住院 ID 标识 每行包含有关住院 ID 发生医院 ID 以及给定住院的入院日期和出院日期的信息 我想知道 对于每次住院治疗 在该次住院开始前 30 天内在指定医院结束的所有其他住院治疗的 ID 以下是 2 家
  • 在Delphi中是否可以将接口绑定到未实现它的对象

    我知道 Delphi XE2 有新的 TVirtualInterface 用于在运行时创建接口的实现 不幸的是我没有使用 XE2 我想知道在旧版本的 Delphi 中做这种事情涉及什么样的黑客行为 假设我有以下界面 IMyInterface
  • AVCaptureSession 没有提供良好的照片质量和良好的分辨率

    我正在与AVCaptureSession用于捕获图像 它工作正常 但没有给出好的解决方案 我将其与iPhone相机拍摄的图像进行了比较 发现iPhone相机拍摄的图像比iPhone相机拍摄的图像要好得多AVCaptureSession im
  • 无法跨子域读取cookie(owa_cookie)

    在我的生产环境中 我的前端位于 a example com 后端位于 b example com 我正在使用 javascript 在 example com 域的路径 中创建一个 cookie 以便从任何子域读取它 当我尝试使用 owa
  • Dart 中包含异步函数的测试函数

    我想测试一个调用其他异步函数的函数 但我不知道如何编写它 函数会像这样 function X x Y y x doSomethingAsync then result if result null y doSomething 我想模拟 X
  • XmlReader持续读取

    我有一个非常大的 xml 文件 这是 xml 格式的简化版本
  • Python Windows 路径正则表达式

    我花了两个小时来解决这个问题 我有这个字符串 C Users Bob luxshop jeans diesel qd images Livier 11 png 我有兴趣获得 Livier 11 png但这对我来说似乎不可能 我怎样才能做到这
  • 客户端证书始终为空

    我已经安装了一个证书Personal也受信任的根证书颁发机构 已尝试使用这段代码发布到端点 public void Post try var clientCert LoadFromStore MyThumbprint var request
  • PHP 在单独的驱动器上上传/读取文件

    我需要能够在单独的驱动器上上传 查看文件 现在 我的网站位于 C 驱动器上的 htdocs 文件夹中 我们已在 D 驱动器上分配了空间来上传和查看文件 使用下面的代码 我可以使用 scandir 来查看 htdocs 文件夹中的内容 但我需
  • html 标签属性“data-setbg”在 React 项目中不起作用

    我正在转换 HTML网站模板 https colorlib com wp template leramiz 进入一个React项目 在该模板中有一个名为data setbg的属性 但没有提供标准的html属性 我想知道什么样的库或框架提供这
  • 触摸事件不起作用?在 UImageview 中?

    我在 viewcontroller m 的 viewdidload 中完成了以下操作 img UIImageView alloc initWithFrame CGRectMake 0 0 320 480 img multipleTouchE
  • 从 Swift 命令行程序使用 NSURLSession

    我正在尝试测试一些概念验证命令行应用程序 然后将其集成到更大的应用程序中 我想做的是使用 NSURLSession 下载一些数据这个例子 https medium com swift programming learn nsurlsessi
  • 如何识别 Type 是否是自定义结构体?

    For a Type 有一个属性IsClass 但如何知道Type是一个结构体 抱歉 我必须添加更多信息 我正在使用 C 虽然IsValueType是必要条件 这显然还不够 对于 Integer 来说 它也是一种值类型 t IsValueT
  • 选择更改时,获取数据属性值

    以下代码返回 未定义 select change function alert this data id
  • 从一个可选或另一个可选中获取价值

    我有两个java util Optional实例 我想得到一个Optional要么 具有第一个可选值 如果它有值 具有第二个可选值 如果它有值 为空 Optional 都没有值 有没有一种直接的方法可以做到这一点 即是否已经有一些 API
  • matlab 中的 .asv 文件

    当我保存一个 m文件位于文件夹中时 MATLAB 自动保存 asv文件位于同一文件夹中 我打开这个文件 发现它从头开始就包含了我的代码 忽略了我删除的内容 这个文件有什么用呢 如果我删除该文件会有什么风险 asv 文件就是您所说的 自动保存
  • SASS 错误:“预期的伪类或伪元素”之后的 CSS 无效

    我今天正在尝试新的东西 SASS 对我来说是全新的 谁能告诉我这个错误的原因是什么 Error Invalid CSS after margin expected pseudoclass or pseudoelement was 0px o
  • ASP.net 无法加载 DLL“Magick.NET-Q16-x64.Native.dll”:访问被拒绝。 (HRESULT 异常:0x80070005 (E_ACCESSDENIED))

    我正在使用 image Magick 从 Stream 创建图像 我在以下几行中收到标题中提到的错误 var image new MagickImage 这是 ImageMagick 或其他问题的问题 不知道如何解决这个问题 解决方法 为用
  • Paypal HTML 集成问题(定期付款未显示销售税)

    我正在使用 Paypal 标准 HTML API 将 Paypal 集成到我的网站 我已经成功地使用 Paypal 文档中指定的 HTML 变量来显示定期付款的 订阅 按钮 然而 有一个严重的 阻碍 问题 我无法让 Paypal 识别经常性
  • Plotly:如何为使用多条轨迹创建的图形设置调色板?

    我使用下面的代码生成具有多个轨迹的图表 然而 我知道为每条迹线应用不同颜色的唯一方法是使用随机函数 该函数将数字 RGB 用作颜色 但随机的颜色不利于演示 我如何在下面的代码中使用调色板颜色而不得到更多随机颜色 groups53 dfagi