标签: plotly

如何使用 Python 将 Plotly 生成的交互式图表从 Jupyter Notebook 导出为 HTML 文件?

我在 Jupyter Notebook 中使用Plotly和 Python 生成了一些交互式图表,但我似乎无法将它们导出为HTML文件。根据网上的一些帖子,原本应该显示在右下角的导出菜单根本不存在。

将 Plotly 与 Python 结合使用的工作流程让我感到困惑。我可以编写代码将交互式图表自动保存到本地驱动器吗?或者我必须使用chart_studio?如果是这样,怎么办?

import plotly.graph_objs as go

data = list()
COLORS = ["aqua","sienna","coral","darkgreen","darksalmon",
          "darkslateblue","greenyellow","maroon","violet"]

for county, col in zip(COUNTIES,COLORS):
    trace = go.Scatter(x = DF.columns,
                       y = DF.loc[county,:],
                       name = county,
                       line = dict(color = col),
                       opacity = 0.8)
    data.append(trace)

fig = go.Figure(data = data,
                layout = dict(title = "County-level (Normalized) Daily New Cases"))
fig.show()
Run Code Online (Sandbox Code Playgroud)

快照]

python plotly jupyter-notebook

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

Plotly / python 显示 HTML 时如何指定配置选项?

我试图删除在 Python 中生成并使用 JS 在 HTML 中显示的绘图中的 ModeBar。根据文档,您可以指定一个配置,例如:

config = dict({'displayModeBar': False})
fig.show(config=config)
Run Code Online (Sandbox Code Playgroud)

但我将无花果导出到 json graphJSON = json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder)(不使用 .show() 函数)

然后用JS显示:

<script>
 var graphs = {{graphJSON | safe}};
 Plotly.newPlot('graph',graphs,{});
</script> 
Run Code Online (Sandbox Code Playgroud)

我尝试在 newPlot 调用中指定一个配置,但没有成功,它似乎被忽略了:

Plotly.newPlot('graph',graphs,{},{displayModeBar: false});
Run Code Online (Sandbox Code Playgroud)

转换为 json 时如何指定配置选项?有没有其他方法可以摆脱ModeBar(鼠标悬停时显示的顶部栏)

python flask plotly plotly-python

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

Plotly 的 Scatterpolar:如何更改 theta 范围?

我正在使用 Plotly 的散点图来可视化多个数据集。

这是我的代码的一部分。下面,我创建了 scatterpolo 实例:

go.Scatterpolar(
    r=[dataset_dataframe['word_count'].median(),
       dataset_dataframe['char_count'].median(),
       dataset_dataframe['capitals'].median(),
       dataset_dataframe['num_exclamation_marks'].median(),
       dataset_dataframe['num_punctuation'].median()],

    name=dataset_name,
    theta=['No. of Words', 'No. of Characters', 'No. of Capitals', 'No. of Exclamation Marks', 'No. of Punctuations'],
    fill='toself',
    line=dict(color='brown'),
    subplot=subplot_name),
)
Run Code Online (Sandbox Code Playgroud)

我在这里将其放入布局中:

fig.update_layout(
    polar=dict(
    radialaxis=dict(visible=True, )),
    title='Dataset Statistics')
Run Code Online (Sandbox Code Playgroud)

我对多个数据框执行此操作,这使我可以轻松比较它们。结果很简洁,如下所示:

在此输入图像描述

不幸的是,似乎 的范围theta是使用每个散点实例的最大值自动计算的r

这不好,因为为了轻松比较数据集,我需要theta所有绘图都处于相同的范围内。

问题:如何将 的范围设置theta为自定义值,例如从 1 到 100?

python scatter-plot plotly

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

通过 Flask 转换为 json 时如何添加 Plotly 图形配置/不使用 plt.show()

我以前见过类似的问题但没有答案。

目的是在 Flask 应用程序上显示图像,但配置已更改。

将图表转换为 JSON 且不使用 Fig.show() 时,Plotly 图表上的配置设置如何更改?如果使用了Fig.show(),那么配置将在里面修改。

烧瓶代码:

当然,如果这只是为了显示图表,则会使用Fig.show,但这会将其传递给JSON。

#example flask application with graph
from flask import Flask, render_template, request
import plotly.express as px
import plotly
import numpy as np
import json

#Flask settings.
secret_key = 'verysecretkey123lol' #secret key
app = Flask(__name__)

#simple image
img_rgb = np.array([[[255, 0, 0], [0, 255, 0], [0, 0, 255]],
                    [[0, 255, 0], [0, 0, 255], [255, 0, 0]]
                   ], dtype=np.uint8)
fig = px.imshow(img_rgb)

#Flask
@app.route("/", methods=['GET', 'POST'])
def create():
    image = …
Run Code Online (Sandbox Code Playgroud)

python flask plotly

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

使用 Plotly 在热图单元格上添加矩形补丁

我正在使用 Plotly 可视化热图,并且我想在该热图上的某些特定单元格周围添加矩形补丁/边框。

我只是想知道是否有什么办法可以做到这一点。我发现它们在 matplotlib 中有类似的功能,允许用户在热图单元格上添加矩形边框add_patch(Rectangle((i,j), 1, 1, fill=False, edgecolor='gray', lw=3))。但我还没有找到plotly提供的类似功能。

我应该怎么办 ?

python visualization matplotlib heatmap plotly

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

Plotly Express 单击更新以过滤数据框过滤器

我试图将绘图表达树图上的点击链接到数据框上的过滤器。因此,当用户单击图表上的某个国家/地区时,数据框将筛选特定国家/地区,而不是显示所有国家/地区

对于plotly.graph_objects 有“使用点击回调更新点”,但我不确定如何使其适用于plotly express。

import numpy as np
df = px.data.gapminder().query("year == 2007")
df["world"] = "world" # in order to have a single root node
fig = px.treemap(df, path=['world', 'continent', 'country'], values='pop',
               color='lifeExp', hover_data=['iso_alpha'],
               color_continuous_scale='RdBu',
               color_continuous_midpoint=np.average(df['lifeExp'], weights=df['pop']))
fig.show()
## when user clicks on a country in the tree-map, the get_data function filters the df and outputs specific data on the country 

def get_data(df, click):
    return df[df['country'] == click]

get_data(df,click) 
Run Code Online (Sandbox Code Playgroud)

python plotly

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

当“fig.show()”调用时,绘图不加载Fig

我试图distplot在 PyCharm IDE 中制作并显示一个绘图,但它尝试加载的浏览器似乎永远缓冲。我的数据和图表是这样的:

import plotly.figure_factory as ff

hist_data = 
[[23740.0, 66440.0, 47890.0, 40632.0, 51778.0, 59966.0, 92433.0, 101595.0, 53863.0, 27279.0, 49620.0, 14981.0], 
[32566.0, 95661.0, 69957.0, 62255.0, 73688.0, 90606.0, 163077.0, 151885.0, 80432.0, 39790.0, 76275.0, 23061.0], 
[41811.0, 122388.0, 87849.0, 80795.0, 98960.0, 123870.0, 245555.0, 204934.0, 105540.0, 49233.0, 98183.0, 29583.0]]


# Group data together
group_labels = ['1997', '2007', '2017']

fig = ff.create_distplot(hist_data, group_labels, bin_size=.2)
fig.show()
Run Code Online (Sandbox Code Playgroud)

我不认为这是代码的问题,它似乎与调用图形有关。该代码是为了可重复性。如果有人知道如何调试它,那就太好了。

python plotly

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

多选项卡破折号应用程序:将“dcc.Store”组件放置在不同的选项卡中

关于dcc.Store在多选项卡结构应用程序中使用的问题。我想保留/存储选项卡之间的数据切换。我的多页面/选项卡破折号应用程序结构如下所示:

  • 索引.py
  • 应用程序.py
    • 选项卡
      • tab1.py
        • 子选项卡1.py
        • 子选项卡2.py
      • tab2.py

index.py根据选择呈现每个文件的布局。

app.layout = html.Div([

    # tabs
    html.Div([

        dcc.Tabs(

            id="tabs",
            vertical=True,
            className="mb-3",
            persistence=True,

            children=[


                 dcc.Tab(label="tab1", value="tab1",
                         children=[dcc.Tabs(id="subtabs", persistence=True, 
                            children=[dcc.Tab(label='subtab1', value='subtab1'),
                                      dcc.Tab(label='subtab2', value='subtab2')
                            ],

                    )
                 ]),
                 dcc.Tab(label="tab2", value="tab2"),

            ],
            
        )

        ],

        className="row tabs_div"

    ),

        

        # Tab content
        html.Div(id="tab_content"),

])
Run Code Online (Sandbox Code Playgroud)

现在,我想在不同的子选项卡之间交换组件状态/数据。subtab1.py包含dcc.Graphanddata-table和 'subtab2.py contains a series of dcc.Graph组件。

我是否需要dcc.Store在两者中添加组件subtab1.pysubtab2.py存储各个组件并从中读取?我希望能够读取subtab1.pyinsubtab2.py和其他文件的组件状态。

python plotly plotly-dash

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

Plotly:按值对堆叠条形图的 y 轴条进行排序

我有一个使用plotly 构建堆积条形图的代码示例:

import plotly.graph_objects as go

x = ['2018-01', '2018-02', '2018-03']

fig = go.Figure(go.Bar(x=x, y=[10, 15, 3], name='Client 1'))
fig.add_trace(go.Bar(x=x, y=[12, 7, 14], name='Client 2'))

fig.update_layout(
    barmode='stack',
    yaxis={'title': 'amount'},
    xaxis={
        'type': 'category',
        'title': 'month',
    },
)
fig.show()
Run Code Online (Sandbox Code Playgroud)

输出以下图:

在此输入图像描述

有没有办法调整绘图布局以按值对每个条形的 Y 轴进行排序?
例如,在第二条 (2018-02) 中,客户端 1 的 Y 值较高,蓝色条应位于红色条的顶部。

python plotly plotly-python

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

尽管已安装,但无法在 .py 脚本中导入plotly.express

在将此标记为重复之前,我已经为此奋斗了相当长一段时间,并尝试了我在网上找到的所有故障排除选项。希望有人知道发生了什么事。

当我尝试执行plotly.express 导入时,它失败并出现以下错误:

File "/mnt/e/Backup/facebook/plotly.py", line 2, in <module>
    import plotly.express as px
ModuleNotFoundError: No module named 'plotly.express'; 'plotly' is not a package
Run Code Online (Sandbox Code Playgroud)

如果我尝试,import plotly我不会收到任何错误,但无法使用plotly.express。

我看到的错误修复全部都指向未安装并通过 pip 进行安装。运行pip3 list表明plotly已安装。

ahren@AhrBeast:~$ pip3 list | grep plotly
plotly                 4.11.0              
plotly-express         0.4.1  
Run Code Online (Sandbox Code Playgroud)

从终端导入plotly.express工作正常:

ahren@AhrBeast:~$ python3
Python 3.8.2 (default, Jul 16 2020, 14:00:26) 
[GCC 9.3.0] on linux
>>> import plotly.express as px
>>> px.data.iris()
     sepal_length  sepal_width  petal_length  petal_width    species  species_id
0             5.1          3.5           1.4          0.2     setosa           1
1             4.9          3.0 …
Run Code Online (Sandbox Code Playgroud)

python pip python-3.x plotly windows-subsystem-for-linux

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