- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题:
使用 plotly express 您可以使用 color=<group>
对数据进行分组并分配不同的颜色在 px.box()
.但是你怎么能用 plotly.graph_objects
做同样的事情?和 go.box()
部分详情:
Plotly Express 很好,但有时我们需要的不仅仅是基础知识。所以我尝试使用 Plotly Go 来代替,但后来我无法弄清楚如何在不添加 go.Box
的情况下用组中的框进行框线图。为每个组手动为文档中。
这是我从 Plotly Express 文档中获取的代码:
import plotly.express as px
df = px.data.tips()
fig = px.box(df, x="time", y="total_bill", color="smoker",
notched=True, # used notched shape
title="Box plot of total bill",
hover_data=["day"] # add day column to hover data
)
fig.show()
color
属性(property)不被承认为有效。
import plotly.graph_objects as go
df = px.data.tips()
fig = go.Figure(go.Box(
x=df.time,
y=df.total_bill,
color="smoker",
notched=True, # used notched shape
))
fig.show()
marker_color
仅适用于 Plotly Go 中的一种颜色(无法提供列表)并将所有框设置为该颜色,并且它不是 Plotly Express 的有效属性。我尝试使用
colorscale
这也不起作用。
最佳答案
让我们直接跳到答案,然后再解释一些细节。为了为您的 go.box
设置颜色数字,您必须将数据集拆分为要研究的组,并使用 line=dict(color=<color>)
为每个子类别分配颜色.下面的代码片段将向您展示如何使用 plotlys 内置颜色循环来获得与使用 plotly express 相同的结果,而无需为每个类别指定每种颜色。您还必须设置 boxmode='group'
用于图形布局,以防止框显示在彼此之上。
plotly 1 - 使用 go.box
:
代码 1 - 使用 go.box
:
# imports
import plotly.graph_objects as go
import plotly.express as px
fig=go.Figure()
for i, smokes in enumerate(df['smoker'].unique()):
df_plot=df[df['smoker']==smokes]
#print(df_plot.head())
fig.add_trace(go.Box(x=df_plot['time'], y=df_plot['total_bill'],
notched=True,
line=dict(color=colors[i]),
name='smoker=' + smokes))
fig.update_layout(boxmode='group', xaxis_tickangle=0)
fig.show()
how can you define the colors for the boxes?
fillcolor
定义默认为线条颜色的半透明变体。在上面的示例中,您可以将透明绿色设置为
全部 盒子使用
fillcolor='rgba(0,255,0,0.5)'
:
fillcolor='rgba(0,255,0,0.5)'
fillcolor=colors[i+4]
)引用与用于线条颜色相同的颜色循环的不同颜色。
fillcolor=colors[i+4]
line=dict(color='black')
和
fillcolor='yellow'
对于所有组:
# imports
import plotly.express as px
import plotly.graph_objects as go
# data
df = px.data.tips()
# plotly setup
fig=go.Figure()
# a plotly trace for each subcategory
for i, smokes in enumerate(df['smoker'].unique()):
df_plot=df[df['smoker']==smokes]
fig.add_trace(go.Box(x=df_plot['time'], y=df_plot['total_bill'],
notched=True,
line=dict(color='black'),
#line=dict(color=colors[i]),
fillcolor='yellow',
#fillcolor=colors[i+4],
name='smoker=' + smokes))
# figure layout adjustments
fig.update_layout(boxmode='group', xaxis_tickangle=0)
fig.show()
How can you achieve the same thing in Plotly Go? Because the color property is not recognised as valid.
go.box
的文档,您很快就会发现
go.box
没有
color
方法,而
px.box
有这个:
color: str or int or Series or array-like
Either a name of a column in `data_frame`, or a pandas Series or
array_like object. Values from this column or array_like are used to
assign color to marks.
color
在
px.Box
为您做的是将数据集拆分为例如
px.data.tips()
等长格式数据集中的唯一组。
go.box
没有这样的方法,你只需要接受 ValueError:
ValueError: Invalid property specified for object of type plotly.graph_objs.Box: 'color'
关于python - Plotly:如何使用 go.box 而不是 px.box 对数据进行分组和指定颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60588385/
考虑这样的代码: trait Foo { fn foo(&self); } fn consume_func(b: Box>) { unimplemented!(); } fn prod
考虑这样的代码: trait Foo { fn foo(&self); } fn consume_func(b: Box>) { unimplemented!(); } fn prod
我不明白在 Rust 中,当我们 Box 父结构时,结构中的结构发生了什么。 struct Outer1 { child: Inner1, } struct Inner1 { n: i
我将开始开发一个新网站,并准备处理浏览器用于计算元素宽度和高度的不同方法 (box model stuff)。不知何故,我想到了:如果我只是将 box-sizing 应用于网站中的所有元素会怎么样?
在 java 应用程序中使用 box java sdk 访问 box api 时,我遇到了下面提到的错误。请指出此问题的原因。 Exception in thread "main" com.box.s
计算盒子的宽高时,outline width like outline: 5px dashed red; 如果 box-sizing:border-box,框的宽度/高度是否会考虑轮廓? 最佳答案 我
读完the subtyping chapter of the Nomicon ,我无法理解类型参数的协方差。特别是对于 Box类型,描述为:T is covariant . 但是,如果我写这段代码:
给定这段代码: trait Trait {} struct Child; impl Trait for Child {} struct Father { child: &'a Box, } i
与文件 chooser for dropbox 类似,box.com 有没有? 最佳答案 Box 目前不维护自己的“文件选择器”;然而,有一个很棒的服务叫做 filepicker.io,它充当几乎所有
感谢您对我的问题的回复:Is this a bug of Box API v2 when getting events 这是一个与此相关的新问题。问题是我不能可靠地使用从以前的调用中获得的 next_
我试图让 Box Enterprise API 使用 As-User 工作。我有一个管理员帐户,我用它来尝试检索子帐户中的内容。 我首先使用管理员帐户检索子帐户的用户ID。并将用户 ID 添加为字段“
我想在一个简单的导轨中本地查看我的 Box 帐户中的图像 app .目标是使用这些图像进行幻灯片放映。我寻找必要的参数来传递每个图像相关 url成标签。看来我只能下载图像,或从 Box 应用程序中查看
这个问题在这里已经有了答案: Why doesn't Rust support trait object upcasting? (5 个答案) 关闭 4 年前。 给定代码 trait Base {
所以基本上我尝试从https://github.com/Gor-Ren/gym-jsbsim转换这个自定义健身房环境。使用farama基金会的gymnasium api。这是我正在处理的存储库:htt
我是BOX API的新手,因此正在使用API的v2。我正在从我的应用程序本地进行REST调用。 我想上传一个以前可能上传或未上传的文件。我知道父文件夹ID和文件名。我需要覆盖现有文件,或者至少要再
我已被授予访问(协作)文件夹的权限。我需要的是每天访问该文件夹并从中获取文件。现在我生成的开发者 token 将在 1 小时后过期。有什么办法可以得到authorization code没有第一站,它
我正在尝试将 Box 中上传的文件与另一个外部系统同步。我使用哪些 API 来获取“在给定 dd/mm/yy hh:mm:ss 后上传/更新的所有文件的列表”? 干杯! 最佳答案 我认为User Ev
Vagrant 文档和 CLI 使用术语“box”和“base box”。命名意味着基本框是一种特定类型的框,但是,这些术语似乎被用作同义词。 Vagrant“盒子”和 Vagrant“基础盒子”之间
Box 允许您为文件夹创建标签,但如何从 API 中获取该信息?我在 GET /folders/{id} API 中没有看到标签返回.标签也不被视为元数据。 最佳答案 如果你看看 Fields wri
我正在尝试确定应该使用哪个版本的 Box api。我的决定取决于 v1 api 的 EOL 时间线。我不想完成我的应用程序,就在应用程序发布之前(或之后不久),v1 api 停止工作。 我很乐意使用
我是一名优秀的程序员,十分优秀!