【发布时间】:2020-07-23 15:04:08
【问题描述】:
我的数据中有一个名为 Pizza Shops 的列,其中包含按州划分的数字,从 10k 到超过 100 万不等(数字是由组成的)。出于某种原因,每个气泡虽然看起来大小合适,但都显示为相同的颜色(红色)。
我的代码
import plotly.graph_objects as go
import pandas as pd
import os
xl_path = "path to XLSX file"
df = pd.read_excel(open(xl_path, 'rb'), sheet_name='Data')
df.head()
scale = 5000
limits = [(0,15000),(15000,50000),(50000,100000),(100000,500000),(500000,2000000)]
colors = ["red","orange","yellow","green","blue"]
df['Text'] = df['State'] + '<br>Number of Pizza Shops ' + (df['Pizza Shops']).astype(str)
fig = go.Figure()
for i in range(len(limits)):
lim = limits[i]
df_sub = df[lim[0]:lim[1]]
fig.add_trace(go.Scattergeo(
locationmode = 'USA-states',
locations=df['State Code'],
text = df_sub['Text'],
marker = dict(
size = df_sub['Pizza Shops']/scale,
color = colors[i],
line_color='rgb(40,40,40)',
line_width=0.5,
sizemode = 'area'
),
name = '{0} - {1}'.format(lim[0],lim[1])))
fig.update_layout(
title_text = '2019 US Number of Pizza Shops<br>(Click legend to toggle traces)',
showlegend = True,
geo = dict(
scope = 'usa',
landcolor = 'rgb(217, 217, 217)',
)
)
fig.show()
样本数据:
| State | State Code | Pizza Shops |
----------------------------------------
Texas TX 13256
California CA 500235
Idaho ID 4000
.... .... .... and so on
【问题讨论】:
-
能否分享您的数据样本?或者至少是一个类似于现实世界数据结构的样本数据集?
-
我确定您使用了 plotly 代码示例作为参考。我认为该样本是用颜色编码的,以按所有城市的人口排名。您不想根据商店数量对代码进行颜色编码吗?
-
@r-beginners 正确,我使用了情节参考。是的,我希望它按商店数量进行颜色编码。
-
@vestland 我编辑了帖子以提供更好的想法。我有一列“Pizza Shops”,每行有一个随机数,另一列“State”有“Texas”、“California”等。还有“State Code”,它有相应的缩写 TX、CA、等
标签: python pandas plotly bubble-chart