hro*_*okr 5 python plotly-express
我有一个示例数据集(pd.read_clipboard(sep=\'\\s\\s+\') 读入 pandas):
\n reference Latitude Longitude year subreg dot_size\ndate \n1984-08-05 1985-12 24.033333 59.916667 1984 62 80\n1984-08-02 1985-11 22.316667 91.716667 1984 62 80\n1984-07-30 1985-10 6.266667 3.183333 1984 62 80\n1984-05-12 1985-9 1.816667 3.200000 1984 93 80\n1983-04-10 1985-8 6.983333 -58.033333 1983 93 80\n1983-03-02 1985-7 4.133333 6.950000 1983 57 80\n1981-04-10 1985-1 13.500000 42.716667 1981 22 80\n1980-02-13 1985-5 16.541667 111.241667 1980 51 80\nRun Code Online (Sandbox Code Playgroud)\n我使用 Plotly express 在 scatter_geo 上绘制了它
\nsubreg = df[\'subreg\']\npx.scatter_geo(df, lat=df[\'Latitude\'], lon=df[\'Longitude\'], color=\'subreg\', height=600)\nRun Code Online (Sandbox Code Playgroud)\n但我发现这些点太小,无法有效阅读,尤其是地图白色部分上的四个黄点。
\n\n我尝试了一些技巧来改变大小,例如,df[\'dot_size\'] = 80它们取得了一些成功,因为它们更大,但我似乎只能选择无点(dotsize = 0)小点(大小未作为参数传递)或巨大的点(点大小 >=1),没有其他可用选项。
Plotly Express scatter_geo 文档尽可能表明了这一点:
\n\n\nsize (str 或 int 或 Series 或 array-like) \xe2\x80\x93 data_frame 中的列名称,或者 pandas Series 或 array_like 对象。此列或 array_like 中的值用于分配标记大小。
\n
我在控制点的大小方面缺少什么?另外,如何有效地设置颜色?
\n切换到的另一种方法是在从 生成它之后go.Scattergeo()进行修改。这对我有用:figpx.scatter_geo()
import pandas as pd
import plotly.express as px
df = pd.DataFrame(dict(lat=[24, 22], lon=[60, 92], subreg=[62, 93]))
fig = px.scatter_geo(df, lat="lat", lon="lon", color="subreg")
fig.update_traces(marker=dict(size=50))
fig.show()
Run Code Online (Sandbox Code Playgroud)
它看起来像这样:
据我所知, px.scatter_geo 中的color和size参数仅会采用列的名称,然后使用该数据来设置大小或颜色。因此,如果您将“subreq”传递给颜色或大小,它将使颜色和大小依赖于数据帧中的该列。
如果您想要更多控制,我建议您使用plotly.graph_objects。你可以做类似的事情
import plotly.graph_objects as go
fig = go.Figure(go.Scattergeo(
lat=df['Latitude'],
lon=df['Longitude'],
marker=dict(color=list(range(6)),
colorscale='viridis',
size=50)
))
fig.show()
Run Code Online (Sandbox Code Playgroud)
这样,您可以将大小/颜色设置为常量(例如设置大小=50),或将其设置为列表,每个点一个。Plotly 将颜色解释为一个范围,实际颜色由色阶决定,请参见此处。希望有帮助
| 归档时间: |
|
| 查看次数: |
10842 次 |
| 最近记录: |