defi-rendu-legifrance/plotgen.py

40 lines
1.5 KiB
Python
Executable File

#!/usr/bin/env python3
import matplotlib.pyplot as plt
import mplleaflet
import fetch
from tqdm import tqdm
import time
import math
def circlepolygon(radius, center, resolution=20):
points=[[center[0] + math.cos(((2*math.pi)/resolution)*i)*radius*1.15, center[1] + math.sin(((2*math.pi)/resolution)*i)*radius] for i in range(resolution)]
return points
def genplot(diclist, resolution=150):
for area in tqdm(diclist, ncols=50):
for figure in area['zone']:
if figure[0] == 'cercle' :
xcoords,ycoords=[],[]
for xaxis,yaxis in circlepolygon(figure[1]/100000, figure[2::], resolution=resolution):
xcoords.append(xaxis)
ycoords.append(yaxis)
xcoords.append(xcoords[0])
ycoords.append(ycoords[0])
plt.plot(xcoords,ycoords,'b')
plt.plot(figure[2],figure[3],'rs')
plt.fill(xcoords,ycoords,'g')
else:
xcoords,ycoords=[],[]
for xaxis,yaxis in figure:
xcoords.append(xaxis)
ycoords.append(yaxis)
xcoords.append(xcoords[0])
ycoords.append(ycoords[0])
plt.plot(xcoords,ycoords,'b')
plt.plot(sum(xcoords)/len(xcoords),sum(ycoords)/len(ycoords),'rs')
plt.fill(xcoords,ycoords,'g')
return plt
if __name__ == '__main__':
genplot(fetch.fetch())
mplleaflet.show()