Полностью хороплет без границ - PullRequest
1 голос
/ 25 апреля 2020

Я использую заговор в Python, чтобы создать подборку округов США, окрашенную некоторой категориальной переменной. Поскольку графства настолько малы, границы изображения доминируют над изображением. Как я могу избавиться от них (или установить их ширину в ноль)?

Код и вывод до сих пор (используя случайные данные):

Сюжет: https://i.stack.imgur.com/G3ltp.png

from urllib.request import urlopen
import json
import numpy as np
import plotly.express as px
import pandas as pd

#Read county geography
with urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json') as response:
    buf = response.read()
    counties = json.loads(buf.decode('utf-8'))

#Create random data
df = pd.DataFrame(np.random.randn(99999, 1),columns=["val"])
df['category']=df['val']>1
df['fips'] = list(range(1,100000))

#Graph
fig = px.choropleth(df, geojson=counties, locations='fips', color='category',
scope="usa")
fig.show()

Ответы [ 2 ]

2 голосов
/ 25 апреля 2020

Мне удалось установить ширину линии на 0, переключившись на plotly.graph_objects.Choropleth (версия plotly_ express .choropleth более низкого уровня). К сожалению, это все еще создает линии или промежутки между округами, но они тоньше, что достаточно для моей цели. Спасибо r-начинающим за указатель.

Вывод:

Сюжет

Код (продолжение вопроса):

import plotly.graph_objects as go

fig = go.Figure(data = go.Choropleth(
    locations = df['fips'],
    z = df['category'].astype(int),
    locationmode = 'geojson-id',
    geojson = counties,
    marker = dict(line=dict(width=0))
))

fig.update_layout(
    geo_scope='usa'
)
fig.show()
1 голос
/ 28 апреля 2020

Просто укажите:

fig['layout']['geo']['subunitcolor']='rgba(0,0,0,0)'

Это устанавливает цвет границы на полную прозрачность, чтобы они выглядели несуществующими:

enter image description here

Полный код:

from urllib.request import urlopen
import json
import numpy as np
import plotly.express as px
import pandas as pd

#Read county geography
with urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json') as response:
    buf = response.read()
    counties = json.loads(buf.decode('utf-8'))

#Create random data
df = pd.DataFrame(np.random.randn(99999, 1),columns=["val"])
df['category']=df['val']>1
df['fips'] = list(range(1,100000))

#Graph
fig = px.choropleth(df, geojson=counties, locations='fips', color='category',
scope="usa")

fig['layout']['geo']['subunitcolor']='rgba(0,0,0,0)'
fig.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...