[英]Show Legend in Plotly Python
我想显示分配给每个标记的颜色的图例。 当我设置showlegend = True
它仅显示一种颜色,并且带有错误的标签。 我在其中一个示例的最后添加了输出。
cities = [dict(
type = 'scattergeo',
locationmode = 'country names',
lon = df['lng'].apply(lambda x: float(x)),
lat = df['lat'].apply(lambda x: float(x)),
text = df['name_of_city'],
marker = dict(
size = df['total_graduates'].apply(lambda x: float(x))/2000,
color = df['effective_literacy_rate_total'],
colorscale='Portland',
line = dict(width=0.5, color='rgb(40,40,40)'),
sizemode = 'area'
)
)]
layout = dict(
title = 'Top 500 Indian Cities by Population',
showlegend = True,
autosize=False,
width=800,
height=1000,
geo = dict(
resolution=100,
scope='asia',
lonaxis = dict( range= [ 65.0 ,100.0] ),
lataxis = dict( range= [ 0.0,40.0 ] ),
projection=dict( type = 'Mercator'),
showland = True,
landcolor = 'rgb(50,50,50)',
subunitwidth=1,
countrywidth=1,
subunitcolor="rgb(255, 255, 255)",
countrycolor="rgb(255, 255, 255)"
),
)
fig = dict( data=cities, layout=layout )
iplot( fig, validate=False, filename='top-500-indian-cities' )
尝试更改colorscale = 'Jet'
并使用showlegend = False
隐藏图例。
import pandas as pd
import geopy
import plotly
#get some real data
cit = pd.read_html('https://en.wikipedia.org/wiki/List_of_cities_in_India_by_population', header=0)[0]
lat = pd.read_html('https://en.wikipedia.org/wiki/List_of_cities_by_latitude', header=0)[8]
cit = cit.merge(lat[lat.Country == 'India'], left_on='City', right_on='City')
#convert longitude and latitude
lat = list()
lon = list()
for i in cit.index:
point = geopy.Point.from_string("{} {}".format(cit.get_value(i, 'Latitude'), cit.get_value(i, 'Longitude')))
lat.append(point[0])
lon.append(point[1])
cities = dict(
type = 'scattergeo',
locationmode = 'country names',
lat = lat,
lon = lon,
text = cit['City'].tolist(),
showlegend = False,
marker = dict(
size = (cit['Population (2011)[3]'] / 2000).tolist(),
color = cit['Population (2011)[3]'].tolist(),
colorscale = 'Jet',
line = dict(width=0.5, color='rgb(40,40,40)'),
sizemode = 'area',
showscale = True
)
)
layout = dict(
title = 'Some Indian Cities by Population',
showlegend = True,
autosize = False,
width = 800,
height = 1000,
geo = dict(
resolution=100,
scope='asia',
lonaxis = dict( range= [ 65.0 ,100.0] ),
lataxis = dict( range= [ 0.0,40.0 ] ),
projection=dict( type = 'Mercator'),
showland = True,
landcolor = 'rgb(50,50,50)',
subunitwidth=1,
countrywidth=1,
subunitcolor="rgb(255, 255, 255)",
countrycolor="rgb(255, 255, 255)"
),
)
fig = dict(data=[cities], layout=layout)
plotly.plotly.sign_in('user', 'key')
plot_url = plotly.plotly.plot(fig)
[1]: https://i.stack.imgur.com/I9vGD.png
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.