我创建了一个带有分组图例的填充图表。 图例中的两个是最小值-最大值,分别在“最小值”和“最大值”列中列出。 我还需要在hoverinfo中对这些值进行分组,从逻辑上讲,这将与Legendgroup相似,但是我似乎无法在任何地方找到答案,并且在搜索时,我在plotly自己的文档中仅看到非常简单的hoverinfo示例。 因此,例如对于x = 1960,y的最小值和最大值应在hoverinfo中列为最小值-最大值:-0.24--0.19
图表:
https://plot.ly/~marialaustsen/2/pip-install-plotly-upgrade/#/
import pandas as pd
gmst_data = pd.read_csv('datasets/gmst.csv')
gmst_data
Year Observations Min Max Hincast Spread ProbYear ProbMonth
0 1960 -0.125028 -0.240861 -0.193750 -0.218470 -0.206202 0.0 0.0
1 1961 -0.133225 -0.206640 -0.134963 -0.199956 -0.194245 0.0 0.0
2 1962 -0.197759 -0.241336 -0.126120 -0.162079 -0.139568 0.0 0.0
3 1963 -0.331219 -0.317699 -0.181005 -0.227539 -0.202399 0.0 0.0
4 1964 -0.373632 -0.430987 -0.275372 -0.301794 -0.279481 0.0 0.0
5 1965 -0.226318 -0.280676 -0.136730 -0.267406 -0.214237 0.0 0.0
6 1966 -0.255212 -0.247974 -0.169003 -0.236345 -0.185526 0.0 0.0
7 1967 -0.257971 -0.275319 -0.181620 -0.242314 -0.193000 0.0 0.0
8 1968 -0.081026 -0.140823 -0.084356 -0.114128 -0.085527 0.0 0.0
9 1969 -0.173978 -0.251267 -0.114922 -0.205240 -0.184157 0.0 0.0
10 1970 -0.281273 -0.282577 -0.148437 -0.266685 -0.253780 0.0 0.0
trace1 = go.Scatter(
x = gmst_data['Year'],
y = gmst_data['Min'],
name = '',
legendgroup = 'minmax',
fill='tonextx',
fillcolor = 'rgba(255, 255, 255, 0.0)',
mode= 'none',
showlegend = False
)
trace2 = go.Scatter(
x = gmst_data['Year'],
y = gmst_data['Max'],
name = 'Min - Max',
legendgroup = 'minmax',
fill='tonexty',
fillcolor = '#2b908f',
mode= 'none'
)
trace0 = go.Scatter(
x = gmst_data['Year'],
y = gmst_data['Observations'],
name = 'Observations',
mode = 'markers',
line = dict(
color = '#79ea61'
)
)
trace3 = go.Scatter(
x = gmst_data['Year'],
y = gmst_data['Hincast'],
name = '',
legendgroup = 'hincastspread',
fill='tonextx',
fillcolor = 'rgba(255, 255, 255, 0.0)',
mode = 'none',
showlegend = False
)
trace4 = go.Scatter(
x = gmst_data['Year'],
y = gmst_data['Spread'],
name = 'Hincast - Spread',
legendgroup = 'hincastspread',
fill='tonexty',
fillcolor = '#F09448',
mode = 'none'
)
data = [trace0, trace1, trace2, trace3, trace4]
layout = dict(title = 'Global mean surface Temperature',
xaxis = dict(title = 'Year'),
yaxis = dict(title = 'Temperature', hoverformat = '.2f'),
)
fig = dict(data=data, layout=layout)
offline.iplot(fig)