import pandas as pd
from pandas import Timestamp
import plotly.express as px
df = pd.DataFrame({'continent': {127: 'South America',
128: 'South America',
129: 'South America',
130: 'South America',
131: 'South America'},
'date': {127: Timestamp('2021-03-01 00:00:00'),
128: Timestamp('2021-03-26 00:00:00'),
129: Timestamp('2021-04-20 00:00:00'),
130: Timestamp('2021-05-15 00:00:00'),
131: Timestamp('2021-06-09 00:00:00')},
'total_cases': {127: 20465329.0,
128: 23470911.0,
129: 26544779.0,
130: 29891133.0,
131: 30534015.0}})
fig = px.bar(df, x='continent', y='total_cases', animation_frame=df.date.astype(str),
# hover_data={'animation_frame':False,
# 'continent':False,
# }
)
fig.update_traces(hovertemplate='Date:%{animation_frame}<br>Total Cases:%{y}')
Run Code Online (Sandbox Code Playgroud)
运行上述代码会输出带有动画滑块的条形图。仅当您不移动滑块时,对悬停标签所做的更改才可见。一旦你这样做并且框架发生变化,默认的plotly.express悬停标签就会重新出现(我认为是因为跟踪更新了)。有什么解决办法吗?
编辑:添加 GIF 来显示问题
我正在尝试向我闪亮的仪表板添加一个绘图。y 轴变量是一个比例,我想将其格式化为百分比。我发现我可以使用布局的 yaxis 设置中的刻度格式功能来完成此操作。然而,由于我的图表中的百分比都很低,我注意到了一些怪癖。
首先,当您将鼠标悬停在数据点上时,y 轴和实际值都会四舍五入到小数点后 0 位。例如,0.0287 和 0.275 都显示为 0.3,尽管它们在图表上的实际位置略有不同,反映了真实的基础价值。
其次,当 y 轴范围如此小并且默认四舍五入到小数点后 0 位时,它在多个刻度处显示相同的值,并且刻度间隔也不直观。
我在下面提供了示例代码,改编自plotly 网站上的示例。(我只是将值更改为较小的值)。
您可以看到它生成的图表给出了刻度线,显示 2%、3%、3%、4%、4%、5%、5%、5%、6%。第一个问题是它具有误导性,其次你可以看到那里有 3x 5%,但只有其他的 2x,所以看起来它甚至没有做出像 4.5%、5%、5.5% 等这样的合理差距,但是而是基于数据值的一些不直观的东西。
library(plotly)
fig <- plot_ly(
type = "scatter",
x = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12),
y = c(0.0185, 0.0382, 0.0561, 0.0463, 0.0596, 0.048, 0.0287, 0.0275, 0.0243, 0.0429, 0.0450, 0.0391),
mode = "markers+lines")
fig <- fig %>%
layout(
yaxis = list(
tickformat = "%"
))
fig
Run Code Online (Sandbox Code Playgroud)
总之:
我如何...
我想在图表上绘制信号,有没有办法在烛台上做到这一点?我执行了以下操作并陷入困境:(
!pip install yfinance
!pip install mplfinance
import yfinance as yf
import mplfinance as mpf
import numpy as np
import pandas as pd
df=yf.download('BTC-USD',start='2008-01-04',end='2021-06-3',interval='1d')
buy=np.where((df['Close'] > df['Open']) & (df['Close'].shift(1) < df['Open'].shift(1),1,0)
fig = plt.figure(figsize = (20,10))
mpf.plot(df,figsize=(20,12),type ='candle',volume=True);
# any idea how to add the signal?
Run Code Online (Sandbox Code Playgroud) 我想将我的 gif 传递给加载器组件,而不是使用默认的数字。有人知道该怎么做吗?
这是我的代码:
dcc.Loading(
id="loading-1",
type="default",
children=html.Div(id="loading-output-1"),
)
Run Code Online (Sandbox Code Playgroud)
我正在尝试完成这样的事情:
dcc.Loading(
id="loading-1",
type="assets/dashboard_loader.gif",
children=html.Div(id="loading-output-1"),
)
Run Code Online (Sandbox Code Playgroud)
有人可以指导我吗?
我有一个graph在回调时触发的组件。这是我从回调函数绘制直方图的代码。
xtup = np.random.lognormal(90, 3, size=1000)
xtup = list(map('{:.0f}'.format,xtup[0]))
xarr = np.asarray(xtup).astype(np.float)
data = [go.Histogram(
x = xarr,
nbinsx=50,
marker=dict(color="rgb(105,105,105)",
opacity=0.5
),
)]
layout = {
"xaxis": {'title': 'Values',
'tickformat': '${:,.0f}'
#'range': [xarr.min(), xarr.max()]
},
"title": "Distribution",
"width": 650,
"height": 400,
"autosize": True
}
return{'data':data, 'layout':layout}
Run Code Online (Sandbox Code Playgroud)
我想在分布的平均值处添加一条垂直虚线。
我正在尝试更改绘图中堆积的 100% 条形图的颜色。
我有以下数据框和代码:
import pandas as pd
import plotly
import plotly.express as px
from plotly.offline import plot
df = pd.DataFrame([["A", "Jan", "20%"],
["A", "Fev", "10%"],
["A", "Mar", "15%"],
["A", "Apr", "10%"],
["B", "Jan", "15%"],
["B", "Fev", "15%"],
["B", "Mar", "20%"],
["B", "Apr", "10%"],
["C", "Jan", "25%"],
["C", "Fev", "25%"],
["C", "Mar", "20%"],
["C", "Apr", "30%"],
["D", "Jan", "40%"],
["D", "Fev", "50%"],
["D", "Mar", "45%"],
["D", "Apr", "50%"]],
columns=["type", "month", "percentage"])
colors = plotly.colors.qualitative.Prism
fig=px.bar(df, x='month', y='percentage',
color=df['type'], barmode ='stack', …Run Code Online (Sandbox Code Playgroud) 如何删除播放和停止按钮并只保留滑块?
import plotly.express as px
import pandas as pd
df = pd.DataFrame(dict(x=[0, 1, 0, 1],
y=[0, 1, 1, 0],
z=[0, 0, 1, 1]))
px.line(df, "x", "y", animation_frame="z")
Run Code Online (Sandbox Code Playgroud)
pythonplotly小提琴图显示负尾,但没有低于0的值。实际y轴在0到23之间(24小时间隔)。但小提琴图尾部超过 23 且小于 0(第 0 和第 23 边距级别添加到图表中)。
代码:
fig = go.Figure()
fig.add_trace(go.Violin(x=df['Region'][ df['alarm_severity'] == 'CRITICAL' ],
y=df['OccurredTime'][ df['alarm_severity'] == 'CRITICAL' ],
legendgroup='CRITICAL', scalegroup='CRITICAL', name='CRITICAL',
line_color='blue')
)
fig.add_trace(go.Violin(x=df['Region'][ df['alarm_severity'] == 'MAJOR' ],
y=df['OccurredTime'][ df['alarm_severity'] == 'MAJOR' ],
legendgroup='MAJOR', scalegroup='MAJOR', name='MAJOR',
line_color='red')
)
fig.add_trace(go.Violin(x=df['Region'][ df['alarm_severity'] == 'WARNING' ],
y=df['OccurredTime'][ df['alarm_severity'] == 'WARNING' ],
legendgroup='WARNING', scalegroup='WARNING', name='WARNING',
line_color='green')
)
fig.add_trace(go.Violin(x=df['Region'][ df['alarm_severity'] == 'MINOR' ],
y=df['OccurredTime'][ df['alarm_severity'] == 'MINOR' ],
legendgroup='MINOR', scalegroup='MINOR', name='MINOR',
line_color='orange')
)
fig.update_traces(box_visible=True, meanline_visible=True )
fig.update_layout(violinmode='group',width=1000,
height=600)
fig.show()
Run Code Online (Sandbox Code Playgroud) 拥有数据 df,执行以下操作:
fig=px.line(df, x='date', y='px', color='description')
Run Code Online (Sandbox Code Playgroud)
下图的渲染效果如所附图像。这是预期的行为吗?如何使点仅按时间顺序连接?
我正在尝试使用plotly 绘制三个不同的时间序列数据帧(每个数据帧大约有60000 条记录),同时使用不同的背景颜色突出显示周末(和工作时间)。
有没有一种方法可以在不循环遍历整个数据集的情况下完成此解决方案中提到的操作。虽然此方法可能有效,但在大型数据集上性能可能较差
plotly ×10
python ×9
plotly-dash ×3
matplotlib ×2
pandas ×2
animation ×1
bar-chart ×1
boxplot ×1
flask ×1
mplfinance ×1
r ×1
rounding ×1
time-series ×1
violin-plot ×1
yaxis ×1