标签: plotly.graph-objects

Plotly:如何显示边缘直方图计数以外的其他值?

我试图在原始图上方创建一个链接的边际图,具有相同的 x 轴但具有不同的 y 轴。

我已经看到,在plotly.express包中有 4 个选项,您可以在散点图上创建 margin_x 图,但它们都基于与 x 和 y 相同的列。

就我而言,我的 x 轴上有一个日期,y 轴上有某物的比率,我试图生成该比率所基于的样本的直方图边际分布图(位于样本列中) df)。

我正在简化我所尝试的内容,但不会减少任何重要细节:

import pandas as pd
import plotly.express as px

df = pd.DataFrame(
    {
        "date": [pd.Timestamp("20200102"), pd.Timestamp("20200103")],
        "rate": [0.88, 0.96],
        "samples": [130, 1200])
    }
)

fig = px.scatter(df, x='date', y='rate', marginal_x='histogram')
fig.show()
Run Code Online (Sandbox Code Playgroud)

我基于的文档: https: //plotly.com/python/marginal-plots/

我想要的结果: 示例:

在此输入图像描述

不同之处在于我使用聚合 df,因此我的计数只是 1,而不是样本数量。

有任何想法吗?

谢谢!

python pandas plotly plotly-python plotly.graph-objects

6
推荐指数
1
解决办法
3619
查看次数

使用 Plotly 绘制动画 3D 曲面图

对于研究数据可视化,我想在 Plotly 中制作动画 3D 曲面图。目标是观察盒子内温度随时间的变化。但我不知道如何让它动起来。

目前我只有在给定时间我的情节。这是我的代码:

import plotly
import plotly.graph_objects as go
#import plotly.express as px
import pandas as pd
#import numpy as np

#read CSV
z_data = pd.read_csv('data1.csv')# Read data from a csv

fig = go.Figure(data=[go.Surface(z=z_data.values)])

#projection 2D
fig.update_traces(contours_z=dict(show=True, usecolormap=True,
                                  highlightcolor="tomato", project_z=True),
                                  colorscale='portland')

#fig
fig.update_layout(title='data HEATPILES', autosize=False, width=650, height=500, margin=dict(l=0, r=0, b=0, t=0))

#show
plotly.offline.plot(fig)
Run Code Online (Sandbox Code Playgroud)

data1.csv 只是这个: data1.csv

但我有更多关于时间函数的点位置的数据,我想制作一个动画情节,这样我们就可以清楚地看到时间的演变。

这是给定时间的结果 给定时间的绘图

我在plotly文档中看到,可以从这里使用 px.scatter 和 px.line 制作动画,从那里我们可以使用图像来制作动画,所以我想使用曲面图是可能的。

如果您能帮助我,我将非常感激!感谢您的帮助,

提奥菲勒

python animation pandas plotly plotly.graph-objects

6
推荐指数
1
解决办法
3107
查看次数

如何仅显示多类别绘图条形图的类别刻度并旋转它们

  1. 我希望不使用绘图对象在多类别条形图中显示内部类别标签
  2. 此外,我希望旋转外部类别标签的标签

这是我的代码

import pandas as pd
import plotly.graph_objects as go

df = pd.DataFrame({
  "City": ["Toronto", "Toronto", "Toronto", "CPH", "CPH", "London", "London"],
  "Tower name": ["T1", "T2", "T3", "T4", "T5", "T6","T7"],
  "Height": [1.0, 1.5, 2.0, 3.0, 4.0, 2.0 ,5.0],
})

fig = go.Figure(go.Bar(x=df.loc[:,["City", "Tower name"]].T.values, y=df["Height"].values))
fig.show()
Run Code Online (Sandbox Code Playgroud)

该代码给出以下输出:

输出

期望的输出如下图所示:

期望的输出

为了隐藏内部类别,我尝试在数据中创建一个空列,如下所示,但这不起作用

df['empty'] = ""
fig = go.Figure(go.Bar(x=df.loc[:,["City", "Tower name"]].T.values, y=df["Height"].values))
fig.update_xaxes(ticktext = df['empty'])
fig.show()
Run Code Online (Sandbox Code Playgroud)

为了旋转刻度线,我使用了tickangle,但这只会旋转内部类别。城市名称保持不变

fig = go.Figure(go.Bar(x=df.loc[:,["City", "Tower name"]].T.values, y=df["Height"].values))
fig.update_xaxes(tickangle = -90)
fig.show()
Run Code Online (Sandbox Code Playgroud)

输出

这是该线程的后续问题:删除分组绘图表达条形图中的空条,以使每组条形之间的视觉距离相等

python plotly plotly.graph-objects

6
推荐指数
0
解决办法
565
查看次数

绘制子图和图形对象错误:跟踪类型“scatter3d”与网格位置的子图类型“xy”不兼容

当我尝试将 add_trace 添加到 sunbplots 时,出现此错误。该图是一个图形对象对象。

fig = make_subplots(rows = len(dfbh['client'].value_counts().index.tolist()), cols = 1)
scatbh = go.Scatter3d(x=dfbhtemp['x_local'], y=dfbhtemp['y_local'], z=dfbhtemp['z_local'], mode = 'markers', )
scatrun = go.Scatter3d(x=dfrunstemp['x_local'], y=dfrunstemp['y_local'], z=dfrunstemp['z_local'], mode = 'markers')
fig.add_trace(scatbh, row = 1, col = 1)
fig.add_trace(scatrun, row = 1, col = 1)
fig.show()

ValueError:  Trace type 'scatter3d' is not compatible with subplot type 'xy'
at grid position (2, 1)
Run Code Online (Sandbox Code Playgroud)

当使用没有行或列的子图时,这些图正常绘制。

python plotly plotly.graph-objects

6
推荐指数
1
解决办法
1332
查看次数

将 Plotly Express 跟踪添加到具有多个跟踪的图形对象 go.Figure() 中?

我正在尝试使用绘图对象来可视化来自不同 pandas 数据帧的时间戳。成功添加跟踪作为 go.Scatter() 图后,我现在想添加 px.timeline() 图作为跟踪。这一般可以吗?

这是我的代码:

import pandas as pd
import plotly.express as px
import plotly.graph_objects as go


df=pd.read_json(file1.json)
df2=pd.read_json(file2.json)
df3=pd.read_json(file3.json)

fig = go.Figure(layout=layout)
fig.add_trace(
    go.Scatter(x=df.column1, y=df.column2, name='name1', mode='markers')
)
fig.add_trace(
    go.Scatter(x=df2.column1, y=df2.column2, name='name2', mode='markers')
)
fig.add_trace(
    go.Scatter(x=df3.column1, y=df3.column2, name='name3', mode='markers')
)
#### add px trace ###
fig.update_traces(marker_size=10)

fig.show()
Run Code Online (Sandbox Code Playgroud)

到目前为止,这运作良好。现在,我想将 px.timeline() 图添加为我的图形的跟踪。我试过:

fig.add_trace(
    px.timeline(df,x_start="column1",
                x_end="column2", y='column3')
Run Code Online (Sandbox Code Playgroud)

这会引发值错误:

ValueError: 
    Invalid element(s) received for the 'data' property of [...]
Run Code Online (Sandbox Code Playgroud)

是否有解决方法可以将 px.-Plots 添加到 go.Figure() ?

python-3.x plotly plotly.graph-objects

3
推荐指数
1
解决办法
6051
查看次数