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
   |  
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
%matplotlib qt 
# pour afficher la fenetre matplotlib depuis un notebook jupyter 
 
from tkinter import *
import numpy as np # faire des matrices utilisable pour les graphes
import matplotlib.pyplot as plt # pour faire des graphes
from mpl_toolkits.mplot3d import Axes3D # faire des graphes 3D
 
def sampling_checks(x):
    global cpt, col_idx
    for i, param in enumerate(par_list):
        if v[x].get() == param and cpt < 3:
            col_idx[cpt] = i
            cpt += 1
            if cpt == 3:
                sampling_3Dplot(col_idx[0], col_idx[1], col_idx[2], colList, par_list)
 
def sampling_3Dplot(col0, col1, col2, columns, params):
    X = columns[col0] 
    Y = columns[col1] 
    Z = columns[col2]
    ax = plt.axes(projection='3d')
    ax.set_xlabel(params[col0])
    ax.set_ylabel(params[col1])
    ax.set_zlabel(params[col2])
    ax.scatter(X,Y,Z) 
    plt.show() 
 
 
fen = Tk()
 
par_list = ["temp", "time", "cata", "equiv"]
colList = [[1,2,3,4,5,],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20]]
cpt=0
col_idx = [None, None, None]
v = [None] * len(par_list)
for i, param in enumerate(par_list):
    v[i] = StringVar()
    c0 = Checkbutton(fen, text=param, variable=v[i], onvalue=param, offvalue='', 
                     command=lambda x=i: sampling_checks(x))
    c0.grid(column=i, row=0, padx=2, pady=5) 
 
fen.mainloop() | 
Partager