根据数据框自动添加轨迹
Automatically add traces based on dataframe
我正在尝试使用 Plotly Scatter 计算每个分支的每月余额。
下面是我的代码:
import pandas as pd
import numpy as np
from pandas import ExcelWriter
import plotly.graph_objects as go
import plotly.express as px
df1 = pd.DataFrame({
'BAS_DT': ['202101','202102','202103','202104','202105','202106',
'202101','202102','202103','202104','202105','202106',
'202101','202102','202103','202104','202105','202106'],
'BR_CD': ['001','001','001','001','001','001',
'100','100','100','100','100','100',
'101','101','101','101','101','101'],
'BAL':[1100,1150,950,1020,999,1025,
1200,1050,950,1000,950,1075,
1080,1115,990,898,915,1100]})
df1 = df1.pivot_table(index='BAS_DT', columns='BR_CD', values='BAL').reset_index()
df1.head()
# df1
BR_CD BAS_DT 001 100 101
0 202101 1100 1200 1200
1 202102 1150 1050 1050
2 202103 950 950 950
3 202104 1020 1000 1000
4 202105 999 950 950
5 202106 1025 1025 1025
fig=go.Figure()
fig.add_trace(go.Scatter(
x=df1['BAS_DT'],
y=df1['001'],
name="001",
text=df1['001'],
mode='lines+markers+text',
textposition='top center',
line_shape='spline'))
fig.add_trace(go.Scatter(
x=df1['BAS_DT'],
y=df1['100'],
name="100",
text=df1['100'],
mode='lines+markers+text',
textposition='top center',
line_shape='spline'))
fig.add_trace(go.Scatter(
x=df1['BAS_DT'],
y=df1['101'],
name="101",
text=df1['101'],
mode='lines+markers+text',
textposition='top center',
line_shape='spline'))
fig.show()
如下图所示:
但我的问题是,如果出现新的分支,我将不得不手动添加新的痕迹。请问有什么方法可以根据输入数据帧自动添加新的traces吗?
谢谢并致以最诚挚的问候。
通过遍历要在 df1 中使用的列来迭代添加跟踪。在此示例中,您需要列索引 0 (BAS_DT) 或 df1.columns[1:]
之后的所有列
fig=go.Figure()
for col in df1.columns[1:]:
fig.add_trace(go.Scatter(
x=df1['BAS_DT'],
y=df1[col],
name=col,
text=df1[col],
mode='lines+markers+text',
textposition='top center',
line_shape='spline'))
fig.show()
我正在尝试使用 Plotly Scatter 计算每个分支的每月余额。 下面是我的代码:
import pandas as pd
import numpy as np
from pandas import ExcelWriter
import plotly.graph_objects as go
import plotly.express as px
df1 = pd.DataFrame({
'BAS_DT': ['202101','202102','202103','202104','202105','202106',
'202101','202102','202103','202104','202105','202106',
'202101','202102','202103','202104','202105','202106'],
'BR_CD': ['001','001','001','001','001','001',
'100','100','100','100','100','100',
'101','101','101','101','101','101'],
'BAL':[1100,1150,950,1020,999,1025,
1200,1050,950,1000,950,1075,
1080,1115,990,898,915,1100]})
df1 = df1.pivot_table(index='BAS_DT', columns='BR_CD', values='BAL').reset_index()
df1.head()
# df1
BR_CD BAS_DT 001 100 101
0 202101 1100 1200 1200
1 202102 1150 1050 1050
2 202103 950 950 950
3 202104 1020 1000 1000
4 202105 999 950 950
5 202106 1025 1025 1025
fig=go.Figure()
fig.add_trace(go.Scatter(
x=df1['BAS_DT'],
y=df1['001'],
name="001",
text=df1['001'],
mode='lines+markers+text',
textposition='top center',
line_shape='spline'))
fig.add_trace(go.Scatter(
x=df1['BAS_DT'],
y=df1['100'],
name="100",
text=df1['100'],
mode='lines+markers+text',
textposition='top center',
line_shape='spline'))
fig.add_trace(go.Scatter(
x=df1['BAS_DT'],
y=df1['101'],
name="101",
text=df1['101'],
mode='lines+markers+text',
textposition='top center',
line_shape='spline'))
fig.show()
如下图所示:
但我的问题是,如果出现新的分支,我将不得不手动添加新的痕迹。请问有什么方法可以根据输入数据帧自动添加新的traces吗?
谢谢并致以最诚挚的问候。
通过遍历要在 df1 中使用的列来迭代添加跟踪。在此示例中,您需要列索引 0 (BAS_DT) 或 df1.columns[1:]
fig=go.Figure()
for col in df1.columns[1:]:
fig.add_trace(go.Scatter(
x=df1['BAS_DT'],
y=df1[col],
name=col,
text=df1[col],
mode='lines+markers+text',
textposition='top center',
line_shape='spline'))
fig.show()