diff options
| author | Pinapelz <yukais@pinapelz.com> | 2024-10-28 15:36:57 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2024-10-28 15:40:47 -0700 |
| commit | 9269e0d3bf5bc0b649a57a2e42891d1e71fc8947 (patch) | |
| tree | 7b65e117d8c3778387dc5da8083a8e160f916e19 | |
| parent | a8f93beffc48c955c7a0270caa3da6400b34f87a (diff) | |
fix: individual toggling of traces
| -rw-r--r-- | graph.py | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -28,18 +28,21 @@ def plot_subscriber_count_over_time(server, table_name, gtitle="Subscriber Count for group_name in group_names: channels_in_group = sorted(df[df['group_name'] == group_name]['name'].unique()) - group_title_added = False + group_title_added = False # Flag to add group title only once for channel in channels_in_group: group = df[(df['group_name'] == group_name) & (df['name'] == channel)] if len(exclude_channels) != 0 and group['channel_id'].iloc[0] in exclude_channels: continue + color = member_color_map.get(channel, '#' + ''.join(random.choices('0123456789ABCDEF', k=6))) + if not group_title_added: legendgrouptitle_text = group_name group_title_added = True else: legendgrouptitle_text = None + fig.add_trace(go.Scattergl( x=group["timestamp"], y=group["subscriber_count"], @@ -48,7 +51,8 @@ def plot_subscriber_count_over_time(server, table_name, gtitle="Subscriber Count showlegend=True, line=dict(color=color), legendgroup=group_name, - legendgrouptitle_text=legendgrouptitle_text + legendgrouptitle_text=legendgrouptitle_text, + legendrank=group_names.index(group_name), )) fig.update_layout( @@ -61,7 +65,11 @@ def plot_subscriber_count_over_time(server, table_name, gtitle="Subscriber Count }, xaxis_title="Date", yaxis_title="Subscribers", - legend=dict(font=dict(size=16), title=dict(text="Channels")), + legend=dict( + font=dict(size=16), + title=dict(text="Channels"), + groupclick='toggleitem' + ), height=950, ) |
