sottotrame Plotly in Python- bordi, Sync Panoramica, sidelabels

voti
4

Il grafico che segue è il mio tentativo di utilizzare Plotly in Python (codice in fondo) per fare plot 2x2. entrare

Sto cercando di migliorare il grafico, ma io non riesco a effettuare le seguenti operazioni:

  1. Borders su ciascuna delle sottotrame
  2. Sincronizza panning e zoom in tutte le trame. Anche se io sto usando shared_xaxes e shared_yaxes, funziona solo per la riga e colonna della sottotrama. Quindi, se ho Pan giro sul grafico in basso a sinistra, il grafico in alto a destra rimane impassibile.
  3. Sidelabels per etichettare le sottotrame. Si veda per esempioentrare

Qualsiasi aiuto sarebbe molto apprezzato. Qui di seguito è il mio codice finora.

import plotly.offline as poff
import plotly.tools as tls

x = list(range(10,20))
y = x
y1 = [10-i for i in x]
y2 = [abs(i-5) for i in x]
y3 = [abs(2*i- 5) for i in x]

fig = tls.make_subplots(rows=2, cols=2, shared_xaxes=True, shared_yaxes=True,
                        vertical_spacing=0.01,
                        horizontal_spacing=0.01, print_grid=True)
fig.append_trace(go.Scatter({'x':x, 'y':y, 'name':'A1'},), 1, 1)
fig.append_trace(go.Scatter({'x':x, 'y':y1, 'name':'B2'},), 2, 2)
fig.append_trace(go.Scatter({'x':x, 'y':y2, 'name':'A2'},), 2, 1)
fig.append_trace(go.Scatter({'x':x, 'y':y3, 'name':'B1'},), 1, 2)

fig['layout'].update(title='Multiple Subplots')
url = poff.plot(fig, filename=test23.html)
È pubblicato 22/03/2016 alle 04:38
dall'utente
In altre lingue...                            


1 risposte

voti
1

Ecco un suggerimento che dovrebbe essere molto vicino al 100%, almeno per quanto riguarda ciò che è effettivamente possibile in questo momento:

1. confini subplot:fig_update_xaxes(mirror=True)

2. Sei già più vicino come si sta andando ad ottenere in questo momento

3. sidelabels:fig['layout']['xaxis']['title']='Label x-axis 1'

Tracciare:

entrare descrizione dell'immagine qui

Codice:

#import plotly.offline as poff
#import plotly.tools as tls

from plotly.subplots import make_subplots
import plotly.graph_objects as go
import pandas as pd

x = list(range(10,20))
y = x
y1 = [10-i for i in x]
y2 = [abs(i-5) for i in x]
y3 = [abs(2*i- 5) for i in x]

fig = make_subplots(rows=2, cols=2, shared_xaxes=True, shared_yaxes=True,
                    #vertical_spacing=0.1,
                    #horizontal_spacing=0.05,
                    print_grid=True,)

fig.append_trace(go.Scatter({'x':x, 'y':y, 'name':'A1'},), 1, 1)
fig.append_trace(go.Scatter({'x':x, 'y':y1, 'name':'B2'},), 2, 2)
fig.append_trace(go.Scatter({'x':x, 'y':y2, 'name':'A2'},), 2, 1)
fig.append_trace(go.Scatter({'x':x, 'y':y3, 'name':'B1'},), 1, 2)

fig['layout'].update(title='Multiple Subplots')

fig.update_xaxes(showline=True, linewidth=1, linecolor='black', mirror=True)
fig.update_yaxes(showline=True, linewidth=1, linecolor='black', mirror=True)

# edit axis labels
fig['layout']['xaxis']['title']='Label x-axis 1'
fig['layout']['xaxis2']['title']='Label x-axis 2'

fig['layout']['xaxis3']['title']='Label x-axis 3'
fig['layout']['xaxis4']['title']='Label x-axis 4'

fig['layout']['yaxis']['title']='Label y-axis 1'
fig['layout']['yaxis2']['title']='Label y-axis 2'

fig['layout']['yaxis3']['title']='Label x-axis 3'
fig['layout']['yaxis4']['title']='Label x-axis 4'

fig.show()
Risposto il 21/11/2019 a 12:13
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more