我有一个类似这样的图表:
我想用下面的方法给点着色,每次版本不同时都用一个点,比如0.1-SNAPSHOT
有8个点,但我只想标记第一个点,其余的只是点(没有版本),其他的都是这样。
我的数据如下所示:
API_paths info_version Commit-growth
24425 0 0.1-SNAPSHOT 52
24424 20 0.1-SNAPSHOT 104
24423 35 0.1-SNAPSHOT 156
24422 50 0.1-SNAPSHOT 208
24421 105 0.1-SNAPSHOT 260
24420 119 0.1-SNAPSHOT 312
24419 133 0.1-SNAPSHOT 364
24576 0 0.1-SNAPSHOT 408
24575 1 0.9.26 (BETA) 504
24574 13 0.9.27 (BETA) 600
24573 15 0.9.28 (BETA) 644
24416 161 0.9.28 28
24415 175 0.9.29 29
24572 29 0.9.29 (BETA) 792
24571 42 0.9.30 (BETA) 836
现在,它们的颜色非常简单:fig = px.scatter(data1, x='Commit-growth', y='API_paths', color='info_version')
和注解如下:
data1= final_api.query("info_title=='Cloudera Datalake Service'").sort_values(by='commitDate')
# data1['Year-Month'] = pd.to_datetime(final_api['Year-Month'])
data1['Commit-growth']= data1['commits'].cumsum()
import plotly.graph_objects as go
fig = go.Figure()
fig = px.scatter(data1, x='commitDate', y='API_paths', color='info_version')
fig.add_trace(go.Scatter(mode='lines',
x=data1["commitDate"],
y=data1["API_paths"],
line_color='black',
line_width=0.6,
line_shape='vh',
showlegend=False
)
)
for _,row in data1.iterrows():
fig.add_annotation(
go.layout.Annotation(
x=row["commitDate"],
y=row["API_paths"],
text=row['info_version'],
showarrow=False,
align='center',
yanchor='bottom',
yshift=9,
textangle=-90)
)
fig.update_layout(template='plotly_white', title='Cloudera Datalake Service API Paths Growth',title_x=0.5,
xaxis_title='Number of Commit', yaxis_title='Number of Paths')
fig.update_traces(marker_size=10, marker_line_width=2, marker_line_color='black', showlegend=False, textposition='bottom center')
fig.show()
我不确定如何实现这一点,所以我有点失落,任何帮助都将不胜感激。
1条答案
按热度按时间ryevplcw1#
尝试建立第一个复本的重复列,以驱动注解的文字。