我想仅在单击按钮后才使用 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 组件,但不确定如何定义此功能的回调。
我有一个用 plotly 制作的散点图(特别是在 Jupyter Notebook 上使用 Python API 离线绘图),如您所知,plotly 使用户可以轻松缩放和框定特定区域,但我希望绘图已经开始专注于我选择的特定领域。
我在文档中找不到任何相关内容(可能是因为我不知道去哪里查找或查找哪些术语)。有没有办法做到这一点,如果有,怎么做?当使用子图而不是 Figure 对象时,设置有何不同?
我正在尝试使用破折号和绘图为 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) 我正在尝试将节点标签的方向更改为节点左侧和空白区域中,以获得更好的可读性,类似于“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) 我正在尝试执行以下代码:
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) 我正在尝试创建等值分布图。下面是一个有效的例子:
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)
但我不确定如何从这里开始。我是否需要通过 …
Plotly 有没有办法访问其范围内任何值的颜色图颜色?
我知道我可以从
plotly.colors.PLOTLY_SCALES["Viridis"]
Run Code Online (Sandbox Code Playgroud)
但我无法找到如何访问中间/插值。
此问题中显示了 Matplotlib 中的等效项。还有另一个问题解决了colorlover图书馆的类似问题,但都没有提供很好的解决方案。
Plotly Express 有一种直观的方式,可以用最少的代码行提供预先格式化的绘图;有点像 Seaborn 如何为 matplotlib 做到这一点。
可以在 Plotly 上添加图迹以在现有线图上获得散点图。但是,我在 Plotly Express 中找不到这样的功能。
是否可以在 Plotly Express 中组合散点图和折线图?
我正在绘制泰坦尼克号数据集的相关矩阵。
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)
我想四舍五入浮点数,因此它们在.点后显示较少的数字。
当前的解决方法实际上是在输入之前围绕 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)
但是当我将鼠标悬停在上面时,解决方法也会使文本四舍五入。我想要完整详细的悬停文本,而显示文本是圆形的。
我可以在不更改输入数据框的情况下在每个单元格上显示更少的数字吗?
我正在尝试使用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 轴刻度动态变化,以便放大时蜡烛看起来更大?
plotly-python ×10
python ×9
plotly ×8
plotly-dash ×2
choropleth ×1
plot ×1
psutil ×1
python-3.x ×1
zooming ×1