Salut à tous,
j'ai un bug que je considère comme très complexe mais j'espère que vous allez me contre-dire.
Voici ce que je fais dans le code si dessous:
1) je lis des données provenant d'un fichier excel
2) le classe ceci dans 2 "dataframe" à l'aide de pandas
3) je sélectionne une valeur pour la variable p afin de tracer les données du dataframe 0 ou 1
4) je fais un plot 2D des données "fx, fy et fz" sous plusieurs formes
5) je fais un plot 3D de "fx, fy et fz"
Voici ce qui ne va pas:
jusqu'au point 4 pas de problème :
- je peux tracer les données en 2D de mon dataframe p=0 ou p=1 sans souci
- par contre, lorsque je veux faire la même chose mais avec le plot 3D alors ça me plante et il me dit que j'essai de tracer quelque chose qui n'est pas un scalaire
Je ne comprends pas du tout car je trace dans un cas les variables "fx, fy et fz" dans un graph 2D et il reconnait bien tout ceci comme des scalaires et lorsque je fais exactement la même chose mais avec un plot 3D il me dit que ça ne va pas....
Autre truc étrange : j'ai le problème avec le dataframe (p=1) mais pas avec le premier (p=0) alors que les données sont similaires...
J'espère que vous pourrez m'aider
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 import sys import os import numpy as np import pandas as pd import matplotlib.pyplot as plt #for jupiter from IPython import display #for 3D plot from mpl_toolkits.mplot3d import Axes3D ############# OK ############### fpath = './test.xlsx' df = pd.read_excel(fpath, sheetname='bilan', skiprows=1,convert_float='False') dfLabo=df.iloc[:,0:8] columnsInteret=['a','b','c','d','f','g'] dfLabo_F1=dfLabo.loc[0:9,columnsInteret] dfLabo_F2=dfLabo.loc[10:19,columnsInteret] dataFramePlot=[dfLabo_F1,dfLabo_F2] ############# PLOT 2D: OK ############### p=1 fx = dataFramePlot[p].loc[:,'a'] fy = dataFramePlot[p].loc[:,'b'] fz = dataFramePlot[p].loc[:,'f'] fig = plt.figure("2D") ax = fig.add_subplot(111) ax.plot(fx, fy,linestyle="None",marker="o") ax.plot(fy, fz,linestyle="None",marker="o") ax.plot(fx, fz,linestyle="None",marker="o") plt.show() ############# PLOT 3D: BUG ############### fig3D = plt.figure("3D") ax3D = fig3D.add_subplot(111, projection='3d') ax3D.plot(fx, fy, fz,linestyle="None",marker="o") plt.show()
Partager