Error creación lollipop
Publicado por anonymous (1 intervención) el 18/01/2021 10:49:48
Buenas, basandome en este código https://colab.research.google.com/github/moyocoyani/geopandasPseudo3D/blob/master/Crear_mapa_proyeccion_pseudo_3d_en_geopandas.ipynb#scrollTo=RSNb60vpRWIV
estoy intentando crear un indice ia de covid por ccaa. Lo tengo todo, pero no me crea los gráficos en lollipop me los hace en circulos proporcionales. paso el código por si alguien me puede iluminar con donde fallo.
estoy intentando crear un indice ia de covid por ccaa. Lo tengo todo, pero no me crea los gráficos en lollipop me los hace en circulos proporcionales. paso el código por si alguien me puede iluminar con donde fallo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import geopandas
import matplotlib.pyplot as plt
import pandas as pd
esp=geopandas.read_file("CCAA.shp")
#Configurando el canvas en matplotlib y
#creando un objeto "axes"
fig,ax = plt.subplots(1,1,figsize=(10,8))
esp.plot(ax=ax)
plt.show()
#Asignando centroides del plano (calculados a mano, habrá que buscar una función que lo obtenga automáticamente)
#x0=1106500=(1.273e6-(-9.4e6))/2
#y0=1025500=(4.986e6-2.935e6)/2
x0=(1.273e6-(-9.4e6))/2
y0=(4.986e6-2.935e6)/2
#Configurando el canvas en matplotlib y
#creando un objeto "axes"
fig,ax = plt.subplots(1,1,figsize=(10,8))
(esp["geometry"]
.skew(xs=-40,ys=0,use_radians=False,origin=(x0,y0))
.rotate(angle=33,use_radians=False,origin=(x0,y0))
.plot(ax=ax))
plt.show()
#Lectura del archivo csv:
df = pd.read_csv('ia.csv')
print(df)
incidencia = df.loc[:,'Incidencia Acumulada 14 días'] #Extraemos la columna de incidencia
print(incidencia) #incidencia es lo mismo que df['Incidencia Acumulada 14 días'].values
#Normalizamos los valores de incidencia a un valor máximo de 15 para poder visualizar bien
incidencia=incidencia/max(incidencia)
incidencia=incidencia*15
#Transformación para crear un mapa pseudo 3D
esp_tr = (esp["geometry"]
.skew(xs=-40,ys=0,use_radians=False,origin=(x0,y0))
.rotate(angle=33,use_radians=False,origin=(x0,y0)))
# Obtención de los centroides de las CCAA
x=(esp_tr
.centroid
.apply(lambda p:p.x)
.values)
y=(esp_tr
.centroid
.apply(lambda p:p.y)
.values)
fig,ax = plt.subplots(1,1,figsize=(14,14))
#Graficando el mapa
esp_tr.plot(ax=ax,color="#ffffff",
edgecolor="#bcbcbc",
zorder=1)
#Mostrando la posición de las coordenadas
ax.scatter(x=x,
y=y,
color="#ff944d")
plt.show()
fig,ax = plt.subplots(1,1,figsize=(14,14))
#Graficando el mapa
esp_tr.plot(ax=ax,
color="#ffffff",
edgecolor="#bcbcbc",
zorder=1)
#Mostrando la posición de las coordenadas
ax.scatter(x=x,
y=y+incidencia,
color="#ff944d",
zorder=2,
s=10*incidencia)
for i in range(len(incidencia)):
ax.plot([x,x],
[y,y+incidencia],
color="#8c8c8c",
zorder=1)
plt.show()
Valora esta pregunta
0