标签: plotly-express

情节表达方面图中的单轴标题

我正在学习使用 pyplot.express 并努力解决以下设计问题:在多面图中,每个子图的轴标题都会重复(在示例中为“花瓣宽度 (cm)”)。有没有办法使用 pyplot.express 为分面图上的所有子图获取单轴标签?

谢谢,迈克尔

最小的例子:

from sklearn.datasets import load_iris
import plotly.express as px
import pandas as pd
import numpy as np

# import iris-data
iris = load_iris()
df= pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns= iris['feature_names'] + ['target'])
df['species'] = pd.Categorical.from_codes(iris.target, iris.target_names)

# plot using pyplot.express
fig = px.bar(df, x="sepal length (cm)", y="petal width (cm)", color = 'petal length (cm)', facet_row="species")
fig.show()
Run Code Online (Sandbox Code Playgroud)

虹膜分面图

python graph plotly plotly-express

6
推荐指数
2
解决办法
3403
查看次数

有没有办法使用 Plotlyexpress 来显示多个子图

我很想知道是否有相当于:

import pandas as pd
import numpy as np

data = pd.DataFrame({'Day':range(10),
                     'Temperature': np.random.rand(10), 
                     'Wind': np.random.rand(10),
                     'Humidity': np.random.rand(10),
                     'Pressure': np.random.rand(10)})

data.set_index('Day').plot(subplots=True, layout=(2,2), figsize=(10,5))
plt.tight_layout()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这会生成 Plotly 图表,而不是 matplotlib 图表。

python pandas plotly plotly-python plotly-express

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

有没有办法在plotlyexpress中实现堆叠或分组条形图

我正在尝试在绘图表达中实现分组条形图(或)堆叠条形图

我已经使用plotly(这非常简单)实现了它,下面是它的代码。数据框中共有六列 ['Rank', 'NOC', 'Gold', 'Silver', 'Bronze', 'Total']

`
trace1=go.Bar(x=olympics_data['NOC'],y=olympics_data['Gold'],marker=dict(color='green',opacity=0.5),name="Gold")
trace2=go.Bar(x=olympics_data['NOC'],y=olympics_data['Silver'],marker=dict(color='red',opacity=0.5),name="Silver")
trace3=go.Bar(x=olympics_data['NOC'],y=olympics_data['Bronze'],marker=dict(color='blue',opacity=0.5),name="Bronze")

data=[trace1,trace2,trace3]

layout = go.Layout(title="number of medals in each category for various countries",xaxis=dict(title="countries"),yaxis=dict(title="number of medals"),
                   barmode="stack")

fig = go.Figure(data,layout)

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

输出:

在此输入图像描述

我期待使用plotly-express 得到类似的输出。

python plotly plotly-express

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

反转图例顺序而不更改绘图表达条形图中的条形顺序

我想更改plotly.express条形图图例中项目的顺序。例如,我想在此图上显示“午餐前的晚餐”(当前的行为对于水平条形图尤其尴尬,因为条形的顺序与图例顺序相反):

import plotly.express as px
df = px.data.tips()
# Sort to put dinner on top.
df.sort_values('time', ascending=False, inplace=True)
fig = px.bar(df, y='sex', x='total_bill', color='time', barmode='group',
             orientation='h')
fig.update_layout(yaxis={'categoryorder': 'total ascending'})
fig.show()
Run Code Online (Sandbox Code Playgroud)

绘图结果

python plot plotly plotly-python plotly-express

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

Plotly:更改旭日图中元素的顺序

我目前正在使用plotlyexpress 来创建Sunburst 图表。然而,我意识到孩子们的标称值是按字母顺序排列的。特别是对于绘制非常不幸的月份......你知道如何处理这个问题吗?也许是财产或某种解决方法?下面有一个例子,你可以自己尝试一下。提前致谢!

import plotly.express as px
import pandas as pd
import calendar
months = [x for x in calendar.month_name if x]

#Create Dataframe
data = []
for m in months:
    data.append(['2018', m, 2])
df = pd.DataFrame(data, columns=['Year', 'Month', 'Value'])

#Compute Sunburst
fig = px.sunburst(df, path=['Year', 'Month'], values='Value')
fig.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python plotly sunburst-diagram plotly-dash plotly-express

5
推荐指数
2
解决办法
2881
查看次数

如何为绘图表达的 scatter_geo 设置点大小和颜色?

我有一个示例数据集(pd.read_clipboard(sep=\'\\s\\s+\') 读入 pandas):

\n
    reference   Latitude    Longitude   year    subreg  dot_size\ndate                        \n1984-08-05  1985-12     24.033333   59.916667   1984    62  80\n1984-08-02  1985-11     22.316667   91.716667   1984    62  80\n1984-07-30  1985-10     6.266667    3.183333    1984    62  80\n1984-05-12  1985-9  1.816667    3.200000    1984    93  80\n1983-04-10  1985-8  6.983333    -58.033333  1983    93  80\n1983-03-02  1985-7  4.133333    6.950000    1983    57  80\n1981-04-10  1985-1  13.500000   42.716667   1981    22  80\n1980-02-13  1985-5  16.541667   111.241667  1980    51  80\n
Run Code Online (Sandbox Code Playgroud)\n

我使用 Plotly express 在 scatter_geo 上绘制了它

\n
subreg = df[\'subreg\']\npx.scatter_geo(df, lat=df[\'Latitude\'], lon=df[\'Longitude\'], color=\'subreg\', height=600)\n
Run Code Online (Sandbox Code Playgroud)\n

但我发现这些点太小,无法有效阅读,尤其是地图白色部分上的四个黄点。

\n

在此输入图像描述

\n

我尝试了一些技巧来改变大小,例如,df[\'dot_size\'] …

python plotly-express

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

如何使用 Plotly Express 创建子图

如果你\xe2\x80\x99和我一样,你喜欢Plotly Express,但是当你遇到Express返回的数字可以\xe2\x80\x99t利用\xe2\x80\x98make_subplots()\xe2\x80的问题时感到沮丧\x99 因为 make_subplots 接受的是痕迹而不是数字。在这篇文章中,我\xe2\x80\x99d想分享我自己的解决方案,关于如何仅使用Plotly Express(和plotly.subplots)创建包含两种不同类型的图形(如下所示)的子图

\n

在此输入图像描述

\n

python plotly plotly-dash plotly-python plotly-express

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

如何调整plotlyexpress面积图大小?

我在 Dash 应用程序上创建了一个绘制清晰的面积图。该图表工作正常,但 x 轴上的第一个点和最后一个点似乎超出了图表,只能看到一半(如附加屏幕截图所示)。我也尝试过更改图形的宽度和高度值,但似乎没有任何效果。我是 python 和 dash 的新手,所以任何帮助将不胜感激,还发布了我关于堆栈溢出的第一个问题,所以如果我错过了任何内容或没有正确完成,我深表歉意。

面积图

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
import plotly.express as px
import pandas as pd
import pyodbc
import dash_bootstrap_components as dbc
from datetime import datetime as dt
from app import app




page2 = html.Div(
    [

     
        dbc.Row(
            [
                dbc.Col(
                        # dbc.Card(
                                    html.Div(

                                        id="opportunity_heatmap",
                                        className="chart_div pretty_container",
                                        children = [
                                            dcc.Graph(id='my_graph',
                                                    
                                                      config={
                                                        'staticPlot': False,     # True, False
                                                        'scrollZoom': True,      # True, False
                                                        'doubleClick': 'reset',  # …
Run Code Online (Sandbox Code Playgroud)

python plotly plotly-dash plotly-express

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

一次向 Plotly 折线图添加多个注释

我想向我的线图添加许多带有箭头的注释。但是,我不想手动添加它们(就像我在下面的代码中所做的那样)。这将是一项艰巨的工作,我宁愿直接从 df['text'] 列(或本列中的列表)添加注释。

import plotly.express as px
import pandas as pd

# assign data of lists.  
data = {'x': [0, 1, 2, 3, 4, 5, 6, 7, 8], 
        'y': [0, 1, 3, 2, 4, 3, 4, 6, 5], 
        'text':["","","Annotation1","","Annotation2","","","",""]}
  
# Create DataFrame  
df = pd.DataFrame(data)

fig = px.line(df, x='x', y='y', title='I want to add annotation with the tekst column in my dataframe (instead of manually)')

fig.add_annotation(x=2, y=3,
            text="Annotation1 (added manual)",
            showarrow=True,
            arrowhead= 2)

fig.add_annotation(x=4, y=4,
            text="Annotation2 (added manual)",
            showarrow=True,
            arrowhead= …
Run Code Online (Sandbox Code Playgroud)

python annotations pandas plotly plotly-express

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

Python Plotly 图表 - 为每个facet_row生成不同的y轴

我正在尝试使用plotly(v 5.11.0)绘制图表,其中我试图为每个facet_row生成不同的y轴。y 轴应与该facet_row 内的所有facet_col 匹配。

使用fig.update_yaxes(matches = None)似乎并不能解决上述问题。如果可能,请提出任何解决方案。

fig = px.bar(query_fb, x = "modelName",
                             y = "value", facet_col = "holdingPeriod",
                             facet_col_wrap = 3,
                             facet_row = 'dataItem',
                             color = "modelName")
fig.for_each_yaxis(lambda y: y.update(title = ''))
fig.for_each_annotation(lambda a: a.update(
                    text=a.text.split("=")[-1]))
yxs = dict(tickformat = yaxisfmt )
fig.update_xaxes(visible=False)
fig.update_yaxes(yxs, tickformat = yaxisfmt,hoverformat = yaxisfmt)
fig.update_layout(autosize=False,
                  width= 250*len(self.modelId),
                  height=600,
                  margin=dict(l=50, r=10, b=60, t=60),
                  #legend= dict(orientation="h",),
                  title_x = 0.2,title= "")
Run Code Online (Sandbox Code Playgroud)

python-3.8 plotly-express

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