小编pri*_*e90的帖子

你如何将 GeoJsonTooltip 添加到 folium.Choropleth 类中的 folium?

我有两个 choropleth 层,我想在其中添加 GeoJsonTooltip,但我一直收到错误 TypeError: __init__() missing 1 required positional argument: 'text'

我目前的代码如下。

import folium
import pandas as pd
import json

df_theft = pd.read_csv('PA_Theft.csv')
df_assualt = pd.read_csv('PA_Assualt.csv')

theft_json = json.load(open('theft_geojson.json'))
assualt_json = json.load(open('assualt_geojson.json'))

m = folium.Map(location=[41.20, -77.50], tiles="cartodbdark_matter", zoom_start=8.3)

theft = folium.Choropleth(
    geo_data=theft_json,
    data=df_theft,               
    columns=['county_name', 'rate'],
    key_on='feature.properties.county_name',
    fill_color='OrRd',
    fill_opacity=0.9,
    nan_fill_color='#ffffff',
    nan_fill_opacity=0.9,
    legend_name='Incident rate per 100,000 people',
    highlight=True,
    name='Theft'
).add_to(m)

folium.GeoJson(
    theft_json,
    tooltip=folium.features.Tooltip(fields=['feature.properties.county_name'])
).add_to(theft)

assualt = folium.Choropleth(
    geo_data=assualt_json,
    data=df_assualt,               
    columns=['county_name', 'rate'],
    key_on='feature.properties.county_name',
    fill_color='OrRd',
    fill_opacity=0.9,
    nan_fill_color='#ffffff',
    nan_fill_opacity=0.9,
    legend_name='Incident rate per 100,000 people', …
Run Code Online (Sandbox Code Playgroud)

python json geojson folium

8
推荐指数
1
解决办法
6217
查看次数

如何在 folium 中添加两个 choropleth 图层并使它们像一个特征组一样工作?

我创建了两个 choropleth 图层,并将其添加到 folium 中的地图中。但是,我不喜欢图层的功能。首先,即使未选择图层,也会显示两个图例。其次,您必须手动取消选中该复选框才能单独查看第二个分区统计图图层。

我希望图例仅在选择其等值区域图层时显示,并且还允许一次选择一个等值区域图层并且不允许任何重叠。

我查看了文档,发现我认为可行的方法是将等值线图层添加到其中,folium.FeatureGroup()然后将其添加到地图中,但不幸的是,由于某种原因,等值线图层在添加到要素组时会返回错误。

接下来,我遇到了 choropleth 图层的叠加参数。当overlay=False添加到 choropleth 参数中时,我得到一个单选按钮而不是一个复选框,这很棒,但其他图层的图例仍然显示,并且我丢失了地图上的图块。

下面是我的代码。任何有关此事的帮助将不胜感激。谢谢你!

import folium
import pandas as pd
import json

df_theft = pd.read_csv('PA_theft.csv')
df_assualt = pd.read_csv('PA_assualt.csv')

theft_data = json.load(open('theft_geojson.json'))
assualt_data = json.load(open('assualt_geojson.json'))

m = folium.Map(location=[41.20, -77.50], zoom_start=8.3)

theft = folium.Choropleth(
    geo_data=theft_data,
    data=df_theft,               
    columns=['county_name', 'rate'],
    key_on='feature.properties.county_name',
    fill_color='OrRd',
    fill_opacity=0.9,
    legend_name='Theft incident rate per 100,000 people',
    highlight=True,
    name='Theft Incidents',
    show=True
).add_to(m)

folium.GeoJson(
    theft_data,
    tooltip=folium.features.GeoJsonTooltip(fields=['county_name', "arrests", "incident_count",
                                                   "incident_total", "population", "rate" ],
                                                   localize=True)
).add_to(theft.geojson)

assualt = folium.Choropleth(
    geo_data=assualt_data,
    data=df_assualt,               
    columns=['county_name', …
Run Code Online (Sandbox Code Playgroud)

python folium

5
推荐指数
0
解决办法
7479
查看次数

如何使用 pd.Grouper 按月对日期进行分组?

我已经搜索了 stackoverflow 以了解如何按月对 DateTime 进行分组,并且由于某种原因,即使在我通过数据帧之后,我仍然收到此错误 pd.to.datetime

类型错误:仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但获得了“Int64Index”的实例

df['Date'] = pd.to_datetime(df['Date'])
df['Date'].groupby(pd.Grouper(freq='M'))
Run Code Online (Sandbox Code Playgroud)

当我为df['Date']它提取数据类型时,它显示dtype: datetime64[ns]Any,为什么我不断收到此错误的想法?

python datetime python-3.x pandas-groupby

4
推荐指数
1
解决办法
4442
查看次数

在 Dash 中执行回调时,如何为 children 属性中的某些单词设置样式?

我很好奇是否可以在短划线的 children 属性中设置某些单词的样式。

我的文本是 children 属性的一部分,因为我有一个更新文本的回调。但是,我只想将冒号前的单词加粗,而不是整个文本。我似乎无法在 Dash 中找到一种优雅的方法来做到这一点。

我的样子带回家的工资总额:500 我希望它看起来像带回家的工资总额: 500

当前代码

html.Div([
    html.Div([
        html.Div(id='total-pay',
                children='',
                style={'font-weight': 'bold'}
        ),
    ], className='six columns'),
], className='row'),

@app.callback(
        Output('total-pay', 'children'),
        [Input('date-picker-range', 'start_date'),
        Input('date-picker-range', 'end_date')],
    )
    def dataview_text(start_date, end_date):
        df = df_paystub
        df = df[(df['Date'] >= start_date) & (df['Date'] <= end_date)]
        totalpay = 'Take Home Pay Total: ' + str(round(df['CheckTotal'].sum(),2))
        return totalpay
Run Code Online (Sandbox Code Playgroud)

谢谢!

python plotly plotly-dash

4
推荐指数
1
解决办法
4652
查看次数