小编Der*_*k O的帖子

对绘图中的轴重新排序

我有大约 3 年的数据,按月和年组织。我想将这些数据按月和年绘制为条形图,以月为 x 轴,以年为迹线。问题是数据从 2018 年 9 月开始,因此要绘制的第一个月是 9 月,但我希望是 1 月。我尝试过这样做,但年份却按递减顺序排列,这也是我不希望的。这是一个代码示例。

import datetime
import pandas as pd
import plotly.graph_objects as go
import random

df = pd.DataFrame({})
numdays = 1000
base = datetime.datetime.today()
date_list = [base - datetime.timedelta(days=x) for x in range(numdays)]
price = [random.randint(1,10) for i in range(numdays)]
df['price'] = price
df.index = date_list
df = df.resample('MS').sum()
df['month'] = df.index.month_name()
df['month number'] = df.index.month
df['year'] = df.index.year
year_list = df['year'].unique().tolist()
fig = go.Figure()

for year in year_list:
    df_aux …
Run Code Online (Sandbox Code Playgroud)

python datetime axis dataframe plotly

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

Plotly add_hline() 不适用于辅助轴

我正在尝试使用辅助 y 轴在绘图中添加 hline 形状。该图正确显示了两个不同 y 轴的数据,但尽管在 add_hline 函数中使用 yref='y2',但 hline 仍绘制在主轴上。

我意识到我可以使用 add_shape 而不是 hline 来解决这个问题,但我试图确定我是否做错了什么。

import plotly.express as px
import plotly.graph_objects as go
import numpy as np

# simple example with hline
df = px.data.iris()
fig = px.scatter(df, x="petal_length", y="petal_width")
fig.add_traces(go.Scatter(y=np.arange(1, 7), mode="lines+markers", yaxis='y2'))
fig.add_hline(y=2, line_dash='dash', line_color='Red', yref='y2')

fig.update_layout(
    width=400,
    height=400,
    plot_bgcolor="white",
    xaxis=dict(linecolor="black"),
    yaxis=dict(linecolor="black"),
    yaxis2=dict(
        title="yaxis2 title",
        overlaying="y",
        side="right",
        linecolor="black",
    )
)
fig.update_xaxes(ticks="outside")
fig.update_yaxes(ticks="outside")
fig.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

plotly

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

Databricks 无法执行合并,因为多个源行匹配并尝试修改 Delta 表中的同一目标行

我正在尝试与 Databricks 进行合并,但收到错误:

UnsupportedOperationException: Cannot perform Merge as multiple source rows matched and attempted to modify the same
target row in the Delta table in possibly conflicting ways.
Run Code Online (Sandbox Code Playgroud)

我在 SO 上多次看到这个问题,并且我知道如果源数据集的多行匹配并且合并尝试更新目标 Delta 表的相同行,则合并操作可能会失败。

简而言之,当源表有多行尝试更新同一目标行时,就会发生这种情况。如果更新表包含具有相同 ID 的记录,则可能会发生这种情况。就我而言,我认为这不适用。

有人可以看一下我的代码,如果他们能发现任何明显的东西,请告诉我

(deltadf.alias("t")
     .merge(
      df.alias("s"),
      "s.primary_key_hash = t.primary_key_hash")
    .whenMatchedUpdateAll("s.change_key_hash <> t.change_key_hash")
    .whenNotMatchedInsertAll()
   .execute()
  )
Run Code Online (Sandbox Code Playgroud)

样本 deltadf

在此输入图像描述

样本 df

在此输入图像描述

请原谅这些图像。我正在努力使用标记语言添加数据

merge apache-spark pyspark azure-databricks

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

有没有办法改变旭日图中图层的厚度

我想更改旭日图中图层的厚度。我已经浏览了https://plotly.com/python/sunburst-charts/上的所有示例,但找不到任何好的解决方案。

采取下面的例子(来自上面的链接)

import plotly.express as px
data = dict(
    character=["Eve", "Cain", "Seth", "Enos", "Noam", "Abel", "Awan", "Enoch", "Azura"],
    parent=["", "Eve", "Eve", "Seth", "Seth", "Eve", "Eve", "Awan", "Eve" ],
    value=[10, 14, 12, 10, 2, 6, 6, 4, 4])

fig =px.sunburst(
    data,
    names='character',
    parents='parent',
    values='value',
)
fig.show()
Run Code Online (Sandbox Code Playgroud)

这是现在的样子: 就像现在一样

这就是我想要划分的地方: 我想在哪里划分

这可能吗?

python plotly sunburst-diagram

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

如何重新排序自定义悬停标签外观的度量?

我正在制作交互式地图,地图本身没有问题,元素位于附加悬停标记中的方式有​​问题。有什么办法可以改变这个顺序吗?是否可以不显示纬度和经度指示器?

示例代码:

@st.cache(hash_funcs={dict: lambda _: None})
def my_stat_map(df_region_map):

    fig_map = px.scatter_mapbox(df_region_map,
                                hover_name='Region name',
                                hover_data=['Confirmed', 'Deaths', 'Recovered',
                                            'Daily confirmed', 'Daily deaths', 'Daily recovered'],
                                lat='Latitude dd',
                                lon='Longitude dd',
                                size='Confirmed',
                                color='Confirmed',
                                color_continuous_scale='Sunsetdark',
                                zoom=3,
                                size_max=45,
                                opacity=0.8,
                                height=600)

    fig_map.update_layout(mapbox_style="carto-positron", showlegend=True)
    fig_map.update_layout(margin={"r": 0, "t": 0, "l": 0, "b": 0})

    dict_map = {'map_key': fig_map}
    return dict_map
Run Code Online (Sandbox Code Playgroud)

我能得到什么: 在此输入图像描述

如何更改此输出中的顺序?我想删除纬度和经度,或者至少将它们移到输出的末尾。

python plotly plotly-express

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

使用时间戳绘制甘特图

我正在尝试使用plotly 绘制甘特图。重要的是水平泳道可以有多个在时间上分开的条。

我找到了一个使用日历日期 (YYYY-MM-DD) 的示例,并尝试使用时间 (HH:MM:SS) 进行转换。但是当我使用时间戳时,所有内容都会聚集在一起,没有间隙。

import plotly.express as px
import pandas as pd

df = pd.DataFrame([
    dict(Start='00:01:12', Finish='00:01:59', Resource="Alex"),
    dict(Start='00:04:51', Finish='00:05:28', Resource="Alex"),
    dict(Start='00:02:12', Finish='00:04:34', Resource="Max")
])

fig = px.timeline(df, x_start="Start", x_end="Finish", y="Resource", color="Resource"
                 )

fig.update_layout(xaxis=dict(
                      title='Timestamp', 
                      tickformat = '%H:%M:%S',
                  ))
fig.show()
Run Code Online (Sandbox Code Playgroud)

破碎的甘特图

python visualization timestamp gantt-chart plotly

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

如何调整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 创建了一个表格,其中包含混合类型的值,例如文本、数字和百分比。我创建的表如下所示:在此输入图像描述

正如您所看到的,某些数字具有非常大的小数位,或者某些数字(如 PLF 列)不是百分比形式。如何在绘图中指定这些数字的格式?我的尝试:

import plotly.graph_objs as go
fig = go.Figure(data=[go.Table(header=dict(values=['<b>Source</b>', '<b>Installed Capacity (MW)</b>',
                                                       '<b>Optimum Capacities(MW)</b>', '<b>Generation Units (MWh)</b>',
                                                       '<b>PLF (%)</b>', '<b>Generation Share (%)</b>',
                                                       '<b>Annual Generation (MU)</b>']),
                                   cells=dict(values=[list(installCapacities.keys()), list(installCapacities.values()),
                                                      list(optimumCapacities.values()), list(generationUnits.values()),
                                                      list(plf.values()), list(generationShare.values()),
                                                      list(annualGeneration.values())],
                                              align='center', format=['text', 'number', 'number', 'number', 'percentage',
                                                                      'percentage', 'number']))
                          ])
Run Code Online (Sandbox Code Playgroud)

值来自不同的字典,它们的计算非常复杂,这就是为什么我在这里没有提到这一点,我只是想如何指定它们的数据类型,例如text,numberpercentage

python decimal string-formatting plotly

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

在 Plotly Express 中删除自定义悬停卡右侧的颜色

custom_data当通过/范例以plotly express 创建自定义悬停卡时hovertemplate,颜色显示在其右侧。例如,此处在“a=1”右侧显示“蓝色”。怎样才能去掉“蓝色”呢?

import pandas as pd
import plotly.express as px

df = pd.DataFrame(dict(x=["a"], y=[1], color=["blue"], hover=["a=1"]))
fig = px.bar(df, "x", "y", "color", custom_data=["hover"])
fig.update_traces(hovertemplate="%{customdata[0]}")
Run Code Online (Sandbox Code Playgroud)

图表截图

(可以在此处访问 Colab 笔记本)

python plotly plotly-python plotly-express

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

将中间值赋给变量使计算结果变得复杂

如果我将中间步骤之一分配给变量,Python 会给出不同的结果,如下所示:

>>> -0.207 ** 0.66 - 1
-1.3536229379434348
>>> a = -0.207
>>> a ** 0.66 - 1
(-1.1703591496008927+0.30988214273656856j)
Run Code Online (Sandbox Code Playgroud)

对于这个简单的计算,如果我分配-0.207给一个临时变量a,则 的结果将a ** 0.66 - 1计算为复数。

为什么会发生这种情况?如何阻止 Python 这样做?

python operators

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