我有大约 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) 我正在尝试使用辅助 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)
我正在尝试与 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
请原谅这些图像。我正在努力使用标记语言添加数据
我想更改旭日图中图层的厚度。我已经浏览了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)
这是现在的样子:

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

这可能吗?
我正在制作交互式地图,地图本身没有问题,元素位于附加悬停标记中的方式有问题。有什么办法可以改变这个顺序吗?是否可以不显示纬度和经度指示器?
示例代码:
@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)
如何更改此输出中的顺序?我想删除纬度和经度,或者至少将它们移到输出的末尾。
我正在尝试使用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)
我在 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) 我使用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,number或percentage?
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 会给出不同的结果,如下所示:
>>> -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 这样做?
plotly ×8
python ×8
apache-spark ×1
axis ×1
dataframe ×1
datetime ×1
decimal ×1
gantt-chart ×1
merge ×1
operators ×1
plotly-dash ×1
pyspark ×1
timestamp ×1