Exemples sur DVF+ open-data

[1]:
import plotly.io as pio
import plotly.express as px
import folium
from folium.plugins import HeatMap

pio.renderers.default = "notebook"

from apifoncier import configure
import apifoncier.dvf_opendata as dvf
[2]:
# On désactive l'affichage des barres de progression
configure(PROGRESS_BAR=False)

Distribution des ventes de maison sur une commune

[3]:
mutations = dvf.mutations(
    code_insee=["59646"], anneemut_min=2017, codtypbien="111", valeurfonc_max=1000000
)
mutations["valeurfonc"] = mutations["valeurfonc"].astype(float)
fig = px.violin(
    mutations,
    y="valeurfonc",
    x="anneemut",
    color="anneemut",
    box=True,
    title=f"Distribution annuelle des prix des ventes de maison à partir de 2017",
    labels={
        "annee": "Année",
        "valeurfonc": "Prix en €",
    },
)
fig.update_layout(legend_title_text="Année de mutation")
fig.show()

Carte de chaleur des ventes de maisons

[4]:
# On sélectionne les ventes de maisons après 2017
geomutations = dvf.geomutations(
    code_insee=["62826", "62261"], codtypbien="111", anneemut_min=2017
)
[5]:
geomutations["centroid"] = geomutations["geometry"].centroid
geomutations["lon"] = geomutations["centroid"].x
geomutations["lat"] = geomutations["centroid"].y
[6]:
heat_df = geomutations.loc[:, ["lat", "lon", "valeurfonc"]]
heat_df = heat_df.dropna()
heat_df["valeurfonc"] = heat_df["valeurfonc"].astype(float)
heat_data = heat_df.values.tolist()

map = folium.Map(location=[50.5335, 1.60724], zoom_start=13)
HeatMap(heat_data, radius=14, max_zoom=15).add_to(map)
map
[6]:
Make this Notebook Trusted to load map: File -> Trust Notebook

Mutations de foncier nu

[7]:
# On récupère les mutations de foncier nu de plus de 1ha sur Lille
gdf = dvf.geomutations(code_insee="59350", codtypbien="2", sterr_min=10000)

map = folium.Map(location=[50.63, 3.075], zoom_start=13)
folium.GeoJson(
    gdf.to_json(),
    popup=folium.GeoJsonPopup(
        fields=("sterr", "valeurfonc"), aliases=("Surface (m2)", "Valeur foncière (€)")
    ),
).add_to(map)
map
[7]:
Make this Notebook Trusted to load map: File -> Trust Notebook