2017-05-15 3 views
-3

Je dispose d'un fichier de données comme les suivantes:Comment faire parcelle 3d bar Python

  Time THR-1 ALA-2 PRO-3 VAL-4 PRO-5 MET-6 PRO-7 ASP-8 LEU-9 LYS-10 ASN-11 VAL-12 LYS-13 SER-14 LYS-15 ILE-16 GLY-17 SER-18 THR-19 GLU-20 ASN-21 LEU-22 LYS-23 HIS-24 GLN-25 PRO-26 GLY-27 GLY-28 GLY-29 LYS-30 VAL-31 GLN-32 ILE-33 ILE-34 ASN-35 LYS-36 LYS-37 LEU-38 ASP-39 LEU-40 SER-41 ASN-42 VAL-43 GLN-44 SER-45 LYS-46 CYS-47 GLY-48 SER-49 LYS-50 ASP-51 ASN-52 ILE-53 LYS-54 HIS-55 VAL-56 PRO-57 GLY-58 GLY-59 GLY-60 SER-61 VAL-62 GLN-63 ILE-64 VAL-65 TYR-66 LYS-67 PRO-68 VAL-69 ASP-70 LEU-71 SER-72 LYS-73 VAL-74 THR-75 SER-76 LYS-77 CYS-78 GLY-79 SER-80 LEU-81 GLY-82 ASN-83 ILE-84 HIS-85 HIS-86 LYS-87 PRO-88 GLY-89 GLY-90 GLY-91 GLN-92 VAL-93 GLU-94 VAL-95 LYS-96 SER-97 GLU-98 LYS-99 LEU-100 ASP-101 PHE-102 LYS-103 ASP-104 ARG-105 VAL-106 GLN-107 SER-108 LYS-109 ILE-110 GLY-111 SER-112 LEU-113 ASP-114 ASN-115 ILE-116 THR-117 HIS-118 VAL-119 PRO-120 GLY-121 GLY-122 GLY-123 ASN-124 DA-1 DA-2 DA-3 DC-4 DA-5 DT-6 DG-7 DT-8 DT-9 DA-10 DA-11 DA-12 DC-13 DA-14 DT-15 DG-16 DT-17 DT-18 DT-19 DA-1 DA-2 DA-3 DC-4 DA-5 DT-6 DG-7 DT-8 DT-9 DT-10 DA-11 DA-12 DC-13 DA-14 DT-15 DG-16 DT-17 DT-18 DT-19 
      0.000   84.841   0.274   8.595   -4.939   1.713   -1.704   0.768  -127.825   5.554  108.207   5.297   8.390  212.124   2.830   39.479   8.168   0.458   8.848   6.897  -83.882   29.016   9.647  308.856   6.400   32.481   11.327   10.372   0.247   -3.669   45.391   7.648   -6.990   16.870   11.946   18.778   29.161  127.841   -1.885  -49.943   4.716   6.552   16.029   4.803   7.307   5.423   35.449   -1.362   0.703   0.817   5.544  -14.168   -2.450   0.138   10.984   2.680   -0.238   -0.204   -1.814   -0.273   0.971   -0.256   2.553   -1.172   0.337   0.659   -3.890   8.570   1.180   2.319  -10.711   0.433   0.320   7.904   -0.021   1.672   -0.895   -1.804   -0.317   0.233   0.013   1.462   -1.310   -3.139   -1.453   -4.536   0.559   59.050  -10.891   3.089   5.579   9.818   6.599   -1.635  -34.622   2.576   14.145   9.062  -82.518   51.319   -5.944  -42.734   -0.065   5.200  -18.819   -1.670   0.354   -0.142   -0.938   -4.108   -0.582   -0.511   -0.452   0.763  -21.291   2.587   -5.088   -0.458   5.958   -0.746   -0.587   0.600   6.134   9.432  -47.476   0.517   -0.958   -1.246   0.005   -1.422   -5.105   -2.815   -6.459   -1.618   56.055  117.408   92.845   60.554   -6.065   -9.293   -3.752   -5.407   -1.491   -4.924   -0.944   13.894   32.688   15.937   2.866   -0.934   25.169   1.291   -5.292   -8.727   5.852   -8.092  -40.334  -18.542   0.468   -6.011   -2.043   -1.305   -0.959 
     10.000  127.315   0.993   15.230   12.627   0.804   0.642   -2.810  -101.634   5.500  114.097   3.368   9.100  162.819  -10.033   39.935   6.920   9.887   9.732   4.997  -79.368   25.134   -5.714  307.359   5.781   34.996   8.885   7.234   -5.875   -0.094   31.674   3.963   -8.064   14.720   12.726   25.431   25.011  108.108   -0.293  -63.815   4.442   1.071   12.768   2.871   1.451   2.179   30.666   -2.066   0.995   1.496   3.384   -1.398   -0.776   -0.101   5.159   1.092   -0.829   -0.205   -0.125   1.054   0.574   -0.291   1.106   0.875   -1.106   -1.955   1.153   4.273   0.628   1.305   -5.547   0.755   0.126   3.704   0.925   0.074   -0.516   3.643   -0.133   -0.064   0.717   0.547   0.197   -0.408   -0.912   -1.296   0.508   35.027   -3.056   10.216   5.885   8.755   -0.792   -1.442  -28.498   2.122   6.803   1.344  -58.583   47.395   -2.332  -32.863   -2.826   5.311  -23.087   6.478   -0.205   0.288   -0.373   4.358   0.362   -1.010   -0.352   2.271  -13.406   -2.747   -4.616   -2.275   3.943   -4.391   -7.063   -0.599   3.081   12.778  -40.043   0.327   -1.940   -2.012   2.592   2.909   1.041   0.658   -0.868   -3.206   16.355  109.843  107.372   63.801   8.499   0.931   2.639   -0.884   0.214   1.880   -2.379   8.408   12.583   10.883   23.083   7.955   31.277   0.539   3.992   -0.887   12.925   -4.248  -31.420   -4.812   1.125   3.287   -0.532   -0.438   0.291 
     20.000   84.636   5.538   15.954   10.437   0.439   1.773   -1.913  -96.625   5.704  132.598   -0.572   6.877  174.628   -9.400   32.417   -0.264   3.812   6.175   5.056  -62.617   25.479   -1.171  288.031   8.114   37.636   10.461   4.612   -3.521   -0.335   37.957   6.596  -11.250   12.510   11.557   21.128   37.344  135.293   -2.163  -80.896   0.912   1.963   1.101   2.815   6.051   5.374   28.443   0.905   1.734   0.813   5.060   -1.365   1.653   -0.415   4.862   1.758   -0.572   -0.339   0.423   0.759   1.036   -0.543   0.783   0.102   -0.971   -1.529   -1.595   5.519   0.587   1.306   -2.813   0.605   0.761   4.542   0.698   0.767   -0.050   2.201   -0.084   0.563   0.357   0.422   0.642   0.588   -1.426   -1.375   1.455   31.332   -3.390   16.696   15.616   13.449   0.096   -2.711  -24.804   1.969   4.095   2.078  -58.303   47.776   -1.047  -22.013   -2.270   4.204  -11.059   3.952   0.382   -0.863   0.010   3.473   0.375   -1.301   -0.037   1.396  -14.392   -2.887   -5.915   -2.315   5.888   -3.365   -5.950   -2.439   4.814   7.125  -46.399   4.393   5.939   -0.508   2.461   2.562   -0.717   4.225   3.642   4.664   27.859  104.835  114.077   74.730   8.410   1.862   0.061   -1.288   -1.181   2.106   4.346   9.017   29.050   -5.088   14.618   4.149   5.062   1.369   15.083   9.537   18.306   -1.165   -8.966   3.864   3.523   7.232   4.275   1.888   4.708 
     30.000   91.953   11.008   15.794   12.043   0.596   4.611   1.048  -70.764   7.475   72.100   1.360   6.891  150.455   -7.180   11.932   4.845   9.519   6.184   4.684  -57.283   24.797   0.393  275.626   14.021   22.233   10.877   0.934   -7.551   -2.439   27.929   5.098   -6.797   12.784   12.140   19.698   25.762  108.882   0.267  -54.801   1.470   2.139   1.302   1.996   2.021   3.090   22.690   0.669   1.347   0.113   5.378   -1.570   0.585   -0.143   1.156   -0.050   -1.086   0.148   -0.017   -0.417   -0.201   -1.304   0.808   -0.950   -0.958   -1.741   0.200   2.846   0.633   1.279   -3.693   0.338   -1.058   3.651   0.009   0.202   -1.009   0.037   -0.245   -0.183   -0.615   0.192   -0.386   0.426   -1.800   -2.009   0.496   33.517   -4.213   15.421   16.942   14.559   0.109   -2.553  -25.113   1.199   2.074   -0.265  -56.399   40.657   -0.746  -24.020   -1.986   3.400   -9.631   1.384   0.502   -1.001   0.547   2.622   -0.201   -1.062   -0.916   0.493  -14.621   -2.660   -4.459   -1.066   3.788   -4.289   -7.086   2.460   5.341   8.759  -39.474   -0.051   2.116   0.498   1.267   0.728   1.071   1.155   0.824   3.214   32.413  124.028  144.011   80.795   11.199   5.365   1.969   0.659   2.780   2.311   1.671   14.244   33.170   -6.859   -6.106   13.690   4.742   0.645   17.301   12.245   15.829  -11.976  -22.289   3.100   1.725   5.538   5.041   3.517   -0.205 

La première colonne doit aller dans l'axe x, alors que les titres de la deuxième colonne à la fin serait l'axe y, et les valeurs de la deuxième colonne à la dernière colonne seraient la hauteur des barres (c'est-à-dire l'axe z).

Je dois le faire en Python et je suis un nouveau venu. Peux-tu aider s'il te plait?

J'ai essayé le code suivant et il est inutile:

#!/usr/bin/python 

import numpy as nm 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 


data=nm.loadtxt('contrib_pol.dat') 
fig=plt.figure() 
ax=fig.add_subplot(111,projection='3d') 



ax.bar(data[:,0],data[0,:],data[:,1:124]) 
plt.show() 


del data 

C'est clignotant ce message d'erreur:

Traceback (most recent call last): 
    File "./barplot.py", line 14, in <module> 
    ax.add_collection3d(data[:,0],data[0,:],data[:,1:124]) 
    File "/usr/lib/python2.7/dist-packages/mpl_toolkits/mplot3d/axes3d.py", line 2210, in add_collection3d 
    Axes.add_collection(self, col) 
    File "/usr/lib/python2.7/dist-packages/matplotlib/axes/_base.py", line 1669, in add_collection 
    label = collection.get_label() 
AttributeError: 'numpy.ndarray' object has no attribute 'get_label' 

Aussi, je pense que je ne suis pas sélectionner correctement les colonnes selon l'exigence. S'il vous plaît aider.

+0

Un message d'erreur s'affiche-t-il? S'il vous plaît fournir plus d'informations. – alexblae

+0

Je reçois ce message d'erreur: retraçage (appel le plus récent en dernier): Fichier "./barplot.py", ligne 14, dans ax.add_collection3d (données [:, 0], les données [0 ,: ], data [:, 1: 124]) Fichier "/usr/lib/python2.7/dist-packages/mpl_toolkits/mplot3d/axes3d.py", ligne 2210, dans add_collection3d Axes.add_collection (self, col) Fichier "/usr/lib/python2.7/dist-packages/matplotlib/axes/_base.py", ligne 1669, dans add_collection label = collection.get_label() AttributeError: l'objet 'numpy.ndarray' n'a aucun attribut 'get_label' –

Répondre

0

Ce qui suit devrait vous aider à vous aider à démarrer:

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 

# Extract the header from the data 
#import csv 
#with open('contrib_pol.dat', 'rb') as f_data: 
# header = next(csv.reader(f_data, delimiter='\t'))[1:] 

data = np.loadtxt('contrib_pol.dat', skiprows=1) 

x = [] 
y = [] 
dz = [] 

cols = ['red', 'blue', 'yellow', 'green'] 
colours = [] 

for r, row in enumerate(data): 
    for c, col in enumerate(row[1:], start=1): 
     x.append(row[0]) 
     y.append(c) 
     dz.append(col) 
     colours.append(cols[r]) 

z = np.zeros(len(y)) 
dx = np.ones(len(y)) 
dy = np.ones(len(y)) 

ax3d = plt.figure().gca(projection='3d') 
ax3d.bar3d(x, y, z, dx, dy, dz, color=colours) 

ax3d.set_xlabel('Time') 
ax3d.set_ylabel('Col') 
ax3d.set_zlabel('Value') 

plt.show() 

Cela vous donne un graphique de sortie comme suit:

3d bar chart

Je suis numpy que pourrait être mieux utilisé pour extraire le données requises.

+0

Merci beaucoup. Je cherchais une réponse comme celle-ci. Cela aide vraiment. –