Python >> Tutoriel Python >  >> Python Tag >> Plotly

Plotly :Comment afficher uniquement les lignes verticales et horizontales (réticule) en tant qu'info-bulle ?

Si vous définissez hovermode='x' alors vous pouvez formater le style de la ligne de pointe comme ceci :

fig.update_xaxes(spikecolor="grey",spikethickness=1)

MISE À JOUR :spikesnap='cursor' vous rapprochera, mais ne fonctionnera pas exactement pour le chandelier.

fig.update_xaxes(showgrid=False, zeroline=False, rangeslider_visible=False, showticklabels=False,
                 showspikes=True, spikemode='across', spikesnap='cursor', showline=False,
                 spikecolor="grey",spikethickness=1, spikedash='solid')
fig.update_yaxes(showspikes=True, spikedash='solid',spikemode='across', 
                spikecolor="grey",spikesnap="cursor",spikethickness=1)
fig.update_layout(spikedistance=1000,hoverdistance=1000)

Cela devrait le faire :

fig.update_layout(hoverdistance=0)

Et le réglage spikesnap='cursor' pour xaxes et yaxes.

Ces petits ajustements garderont le réticule intact et supprimeront la petite icône qui vous dérangeait.

À partir de la documentation :

Tracé :

distance de survol

Définit la distance par défaut (en pixels) pour rechercher des données pour ajouter des étiquettes de survol (-1 signifie pas de coupure, 0 signifie pas de recherche de données). Il s'agit uniquement d'une distance réelle pour survoler des objets ponctuels, comme des points de dispersion. Pour les objets de type zone (barres, remplissages dispersés, etc.), le survol est activé à l'intérieur de la zone et désactivé à l'extérieur, mais ces objets ne remplaceront pas le survol des objets de type point en cas de conflit.

Code complet : (mais sans tiret)

import pandas as pd
import numpy as np
import plotly.graph_objs as go
from plotly.subplots import make_subplots

df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv').iloc[:60]
fig = make_subplots(rows=2, cols=1, row_heights=[0.8, 0.2], vertical_spacing=0)

fig.add_trace(go.Candlestick(open=df['AAPL.Open'], high=df['AAPL.High'], low=df['AAPL.Low'], close=df['AAPL.Close'],
                             increasing_line_color='#0384fc', decreasing_line_color='#e8482c', name='AAPL'), row=1, col=1)

fig.add_trace(go.Scatter(y=np.random.randint(20, 40, len(df)), marker_color='#fae823', name='VO', hovertemplate=[]), row=2, col=1)

fig.update_layout({'plot_bgcolor': "#21201f", 'paper_bgcolor': "#21201f", 'legend_orientation': "h"},
                  legend=dict(y=1, x=0),
                  font=dict(color='#dedddc'), dragmode='pan', hovermode='x unified',
                  margin=dict(b=20, t=0, l=0, r=40))

fig.update_yaxes(showgrid=False, zeroline=False, showticklabels=False,
                 showspikes=True, spikemode='across', spikesnap='cursor', showline=False, spikedash='solid')

fig.update_xaxes(showgrid=False, zeroline=False, rangeslider_visible=False, showticklabels=False,
                 showspikes=True, spikemode='across', spikesnap='cursor', showline=False, spikedash='solid')

fig.update_layout(hoverdistance=0)

fig.update_traces(xaxis='x', hoverinfo='none')
fig.show()