标签: plotly-python

Plotly:单击按钮后如何显示图形?

我想仅在单击按钮后才使用 plotly 显示图形,但我不确定如何进行此操作。我的图存储在以下代码位中

    fig1 = go.Figure(data=plot_data, layout=plot_layout)
Run Code Online (Sandbox Code Playgroud)

然后我使用以下代码位定义我的应用程序布局:

app.layout = html.Div([
                #button
                html.Div(className='submit', children=[

                html.Button('Forecast', id='submit', n_clicks=0)
                ]),
                #loading 
                dcc.Loading(
                id="loading-1",
                type="default",
                children=html.Div(id="loading-output-1")
                ),
                #graph
                dcc.Graph(id= 'mpg-scatter',figure=fig),
    
                #hoverdata
                html.Div([
                    dcc.Markdown(id='hoverdata-text')
                ],style={'width':'50%','display':'inline-block'})
])

@app.callback(Output('hoverdata-text','children'),
             [Input('mpg-scatter','hoverData')])

def callback_stats(hoverData):
    return str(hoverData)


if __name__ == '__main__':
    app.run_server()
Run Code Online (Sandbox Code Playgroud)

但问题是我只想首先显示按钮。然后当有人点击预测按钮时,加载功能出现,一秒钟后图表显示。我定义了一个 dcc.loading 组件,但不确定如何定义此功能的回调。

python plotly plotly-dash plotly-python

8
推荐指数
1
解决办法
2557
查看次数

有没有办法开始使用 plotly 在特定区域上缩放的绘图?

我有一个用 plotly 制作的散点图(特别是在 Jupyter Notebook 上使用 Python API 离线绘图),如您所知,plotly 使用户可以轻松缩放和框定特定区域,但我希望绘图已经开始专注于我选择的特定领域。

我在文档中找不到任何相关内容(可能是因为我不知道去哪里查找或查找哪些术语)。有没有办法做到这一点,如果有,怎么做?当使用子图而不是 Figure 对象时,设置有何不同?

python plot zooming plotly plotly-python

7
推荐指数
2
解决办法
5950
查看次数

使用 Plotly-python 绘图后防止相机重置

我正在尝试使用破折号和绘图为 3d Quiver 或 Cone 绘制一些数据,并且我想通过间隔输入定期更新图形!

所以我设法为图表制作了动画,但问题是每次更新后相机角度和变焦都会不断重置。我有以下代码:

import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
from dash.dependencies import Output, Input
import pickle


#reading initial data
with open("shared.pkl", "rb") as f:
    quivDic = pickle.load(f)


quiver_3d = go.Cone(x = quivDic["X"], y = quivDic["Y"], z = quivDic["Z"],
                    u = quivDic["U"], v = quivDic["V"], w = quivDic["W"],
                    colorscale = 'Blues', name = "testScatter")
data = [quiver_3d]
layout = dict(title ="Test Quiver", showlegend=False, aspectratio=dict(x=1, y=1, z=0.8),
                             camera_eye=dict(x=1.2, y=1.2, z=0.6)) …
Run Code Online (Sandbox Code Playgroud)

python-3.x plotly-dash plotly-python

7
推荐指数
1
解决办法
1259
查看次数

有没有办法改变 Plotly Sankey 图中的文本对齐方式?

我正在尝试将节点标签的方向更改为节点左侧和空白区域中,以获得更好的可读性,类似于“C”标签的对齐方式。

在此输入图像描述

import plotly.graph_objects as go

fig = go.Figure(data=[go.Sankey(
    node = dict(
      pad = 15,
      thickness = 20,
      line = dict(color = "black", width = 0.5),
      label = ["A1", "A2", "B1", "B2", "C1", "C2"],
      color = "blue"
    ),
    link = dict(
      source = [0, 1, 0, 2, 3, 3], # indices correspond to labels, eg A1, A2, A2, B1, ...
      target = [2, 3, 3, 4, 4, 5],
      value = [8, 4, 2, 8, 4, 2]
  ))])

fig.update_layout(title_text="Basic Sankey Diagram", font_size=10) …
Run Code Online (Sandbox Code Playgroud)

python text-alignment plotly sankey-diagram plotly-python

7
推荐指数
0
解决办法
1285
查看次数

即使安装了 Plotly.io 也看不到 psutil 包

我正在尝试执行以下代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
%matplotlib inline
import seaborn as sns

import plotly.graph_objects as go

from plotly.offline import init_notebook_mode, iplot
init_notebook_mode(connected=True)

from sklearn.preprocessing import QuantileTransformer

import os

if not os.path.exists("images"):
    os.mkdir("images")

# import orca


import plotly.io as pio
pio.orca.config.executable = '/path/to/orca'
pio.orca.ensure_server()

import psutil
Run Code Online (Sandbox Code Playgroud)

我得到:

ValueError                                Traceback (most recent call last)
<ipython-input-89-6e2b31e44303> in <module>
     25 import plotly.io as pio
     26 pio.orca.config.executable = '/path/to/orca'
---> 27 pio.orca.ensure_server()
     28 
     29 import psutil …
Run Code Online (Sandbox Code Playgroud)

python plotly psutil plotly-python

7
推荐指数
1
解决办法
1166
查看次数

Plotly Choropleth Map Plots 的下拉菜单

我正在尝试创建等值分布图。下面是一个有效的例子:

df = px.data.gapminder().query("year==2007")

fig = go.Figure(data=go.Choropleth(
    locations=happy['iso'], # Spatial coordinates
    z = happy['Happiness'].astype(float), # Data to be color-coded
    colorbar_title = "Happiness Score",
))

fig.update_layout(
    title_text = 'Life Expectancy in 2007'
)

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

但是,我想创建一个下拉菜单来更改不同变量(例如,预期寿命、GDP、人口)之间的绘图值。我相信这是可能的,但还没有在网上看到任何教程。他们中的大多数只使用其他类型的条形图或散点图。

这是我到目前为止所得到的:

# Initialize figure
fig = go.Figure()

# Add Traces
fig.add_trace(go.Figure(data=go.Choropleth(
    locations=df['iso_alpha'], # Spatial coordinates
    z = df['lifeExp'].astype(float), # Data to be color-coded
    colorbar_title = "Life Expectancy")))

fig.add_trace(go.Figure(data=go.Choropleth(
    locations=df['iso_alpha'], # Spatial coordinates
    z = df['gdpPercap'].astype(float), # Data to be color-coded
    colorbar_title = "GDP per capita")))
Run Code Online (Sandbox Code Playgroud)

但我不确定如何从这里开始。我是否需要通过 …

python drop-down-menu plotly choropleth plotly-python

7
推荐指数
1
解决办法
1727
查看次数

从绘图色标访问颜色

Plotly 有没有办法访问其范围内任何值的颜色图颜色?

我知道我可以从

plotly.colors.PLOTLY_SCALES["Viridis"]
Run Code Online (Sandbox Code Playgroud)

但我无法找到如何访问中间/插值。

此问题中显示了 Matplotlib 中的等效项。还有另一个问题解决了colorlover图书馆的类似问题,但都没有提供很好的解决方案。

python plotly-python

7
推荐指数
3
解决办法
1358
查看次数

Plotly:如何使用 Plotly Express 组合散点图和线图?

Plotly Express 有一种直观的方式,可以用最少的代码行提供预先格式化的绘图;有点像 Seaborn 如何为 matplotlib 做到这一点。

可以在 Plotly 上添加图迹以在现有线图上获得散点图。但是,我在 Plotly Express 中找不到这样的功能。

是否可以在 Plotly Express 中组合散点图和折线图?

python plotly plotly-python plotly-express

7
推荐指数
2
解决办法
3596
查看次数

Plotly:如何在带注释的热图中舍入显示文本,但在悬停时保持完整格式?

我正在绘制泰坦尼克号数据集的相关矩阵。

df_corr = df.corr()
Run Code Online (Sandbox Code Playgroud)

最初,矩阵如下所示:

fig = ff.create_annotated_heatmap(
            z=df_corr.to_numpy(),
            x=df_corr.columns.tolist(),
            y=df_corr.index.tolist(),
            zmax=1, zmin=-1,
            showscale=True,
            hoverongaps=True
            )
# add title
fig.update_layout(title_text='<i><b>Correlation not round</b></i>')
Run Code Online (Sandbox Code Playgroud)

not_round

我想四舍五入浮点数,因此它们在.点后显示较少的数字。

当前的解决方法实际上是在输入之前围绕 pandas 数据框。

df_corr_round = df_corr.round(3)
fig = ff.create_annotated_heatmap(
            z=df_corr_round.to_numpy(),
            x=df_corr.columns.tolist(),
            y=df_corr.index.tolist(),
            zmax=1, zmin=-1,
            showscale=True,
            hoverongaps=True
            )
# add title
fig.update_layout(title_text='<i><b>Correlation round</b></i>')
Run Code Online (Sandbox Code Playgroud)

圆形的

但是当我将鼠标悬停在上面时,解决方法也会使文本四舍五入。我想要完整详细的悬停文本,而显示文本是圆形的。

我可以在不更改输入数据框的情况下在每个单元格上显示更少的数字吗?

python plotly plotly-python

7
推荐指数
1
解决办法
716
查看次数

如何在放大时动态更改图表中 y 轴的比例/刻度?

我正在尝试使用plotly 制作蜡烛图。我使用的股票数据跨度超过 10 年。因此,由于 y 轴的比例很大,蜡烛显得非常小。但是,如果我放大到较小的时间段(假设 10 年中的任何 1 个月),我希望 y 轴刻度发生变化,以便蜡烛看起来很大。下面是我的代码:

df_stockData = pdr.DataReader('TSLA', data_source='yahoo', start='2011-11-04', end='2021-11-04')

fig = make_subplots(rows=2, cols=1, shared_xaxes=True, row_width=[0.25, 0.75])
fig.add_trace(go.Candlestick(
    x=df_stockData.index,
    open=df_stockData['Open'],
    high=df_stockData['High'],
    low=df_stockData['Low'],
    close=df_stockData['Close'],
    increasing_line_color='green',
    decreasing_line_color='red',
    showlegend=False
), row=1, col=1)
fig.add_trace(go.Scatter(
    x=df_stockData.index,
    y=df_stockData['RSI_14'],
    line=dict(color='#ff9900', width=2),
    showlegend=False,
), row=2, col=1
)
fig.show()

Run Code Online (Sandbox Code Playgroud)

我的图表如下所示: 在此输入图像描述

正如您所看到的,y 轴(股票价格)的比例非常大。即使我放大到更小的时间段,y 轴刻度也保持不变。有没有办法让 y 轴刻度动态变化,以便放大时蜡烛看起来更大?

在此输入图像描述

python plotly plotly-python

7
推荐指数
1
解决办法
4263
查看次数