问题
I want to add a (horizontal) scrollbar to the X axis, because the number of points is large. How can I do it?
trace0 = go.Scatter(
x = x1_values,
y = y1_values,
name = "V1"
)
data = [trace0]
layout = dict(title = title,
xaxis = dict(tickmode='linear', tickfont=dict(size=10)),
yaxis = dict(title = "Title")
)
fig = dict(data=data, layout=layout)
iplot(fig)
回答1:
Using plotly you can add a rangeslider using fig['layout']['xaxis']['rangeslider']
with functionality that exceeds that of a scrollbar:
Plot:
Code:
Here's an example using some random data in an off-line Jupyter Notebook.
# imports
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
from IPython.core.display import display, HTML
import plotly.figure_factory as ff
import plotly.graph_objs as go
import pandas as pd
import numpy as np
# setup
display(HTML("<style>.container { width:35% !important; } .widget-select > select {background-color: gainsboro;}</style>"))
init_notebook_mode(connected=True)
np.random.seed(1)
# random time series sample
df = pd.Series(np.random.randn(1000),index=pd.date_range('1/1/2000', periods=1000)).cumsum().to_frame()+100
df.columns = ['Series1']
# trace / line
trace1 = go.Scatter(
x=df.index,
y=df['Series1'],
name = "AAPL High",
line = dict(color = 'blue'),
opacity = 0.4)
# plot layout
layout = dict(
title='Slider / Scrollbar',
xaxis=dict(
rangeselector=dict(
buttons=list([
dict(count=1,
label='1m',
step='month',
stepmode='backward'),
dict(count=6,
label='6m',
step='month',
stepmode='backward'),
dict(step='all')
])
),
rangeslider=dict(
visible = True
),
type='date'
)
)
# plot figure
data = [trace1]
fig = dict(data=data, layout=layout)
iplot(fig)
For more details take a look here.
来源:https://stackoverflow.com/questions/56108996/how-to-add-a-horizontal-scrollbar-to-the-x-axis