Split ploting in 2

This commit is contained in:
Benjamin Bertrand 2016-11-26 16:52:46 +03:00
parent acc338367e
commit c8b98dccec
2 changed files with 54 additions and 3 deletions

View File

@ -0,0 +1,53 @@
#!/usr/bin/env python
# encoding: utf-8
from .plottings import radar_graph
import pandas as pd
import numpy as np
def comp_radar(df, optimum = None):
""" Plot the radar graph concerning "Competence" column of the df
:param df: DataFrame with "Competence", "Normalized"
:returns: exes with radar plot
"""
comp_pt = pd.pivot_table(df,
index = ["Competence"],
values = ["Normalized"],
aggfunc=np.mean,
)
labels = list(comp_pt.index)
values = [i[0] for i in comp_pt.values]
if optimum is None:
optimum = [1]*len(values)
fig, ax = radar_graph(labels, values, optimum)
return fig, ax
def marks_hist(df):
""" Return axe for the histogramme of the dataframe
:param df: Dataframe with "Mark" and "Bareme" columns. If it has "Nom" column, it is use in title.
"""
bareme = df["Bareme"].max()
bins = bareme*2
ax = df["Mark"].hist(bins = bins, range=(0,bareme))
try:
nom = df["Nom"].unique()
except KeyError:
title="Histogramme"
else:
title="Histogramme pour {}".format(" ".join(nom))
ax.set_title(title)
return ax
# -----------------------------
# Reglages pour 'vim'
# vim:set autoindent expandtab tabstop=4 shiftwidth=4:
# cursor: 16 del

View File

@ -7,6 +7,7 @@ from matplotlib.path import Path
from matplotlib.spines import Spine from matplotlib.spines import Spine
from matplotlib.projections.polar import PolarAxes from matplotlib.projections.polar import PolarAxes
from matplotlib.projections import register_projection from matplotlib.projections import register_projection
plt.style.use('ggplot')
def _radar_factory(num_vars): def _radar_factory(num_vars):
theta = 2*np.pi * np.linspace(0, 1-1./num_vars, num_vars) theta = 2*np.pi * np.linspace(0, 1-1./num_vars, num_vars)
@ -69,9 +70,6 @@ def radar_graph(labels = [], values = [], optimum = []):
ax.plot(theta, optimum, color='r') ax.plot(theta, optimum, color='r')
ax.set_varlabels(labels) ax.set_varlabels(labels)
return fig, ax return fig, ax
#plt.show()
#plt.savefig("radar.png", dpi=100)
# ----------------------------- # -----------------------------