2010-10-05 5 views
2

Mon graphique a Xticks Yticks, Xlabels, Ylabels.MatplotLib - Affichage des données sous Graphe/Tracé

My Code 



firmwareList = self.firmware # Gets the list of all firmwares , this is a list 

J'ai besoin de mettre ces données de firmware sous chaque barre.

Fondamentalement, j'ai besoin de mettre la version de construction ci-dessous l'axe X pour chaque barre.

Example | 
     | 
     | 
     | 
     | 
     | 
     |____________________ 
     0.0.1 0.0.2 0.0.3 

J'ai déjà utilisé Xticks, Xlabels.

Comment puis-je mettre les données sur l'axe x. c'est une liste.

Répondre

1

Vous devriez être en mesure de le faire avec le second argument de xticks fonction:

xticks(arange(3), ('firmware 1', 'firmware 2', 'firmware 3')) 

Mise à jour: Je pense que le premier exemple suivant nommé « label tique comme les annotations » sur la page Matplotlib Transformations de Le livre de recettes SciPy couvre la méthode générale que vous recherchez.

Notez qu'il y avait un changement d'API, si la ligne 4 doit être:

blend = M.transforms.blended_transform_factory 
+0

Salut Merci pour votre réponse, mais j'ai déjà affiché les ticks en utilisant la fonction xticks. Je veux afficher plus de données sous les Xticks. – John

+0

Pourriez-vous développer ce que vous voulez dire? En regardant le tableau ASCII dans votre question, il semble que vous pouvez remplacer '('firemware 1', ..' dans ma réponse par' ('0.0.1', '0.0.2', .. »dans votre tableau et vous – ars

+0

OK, je vais développer en détail Mon code existant a déjà une fonction xticks self.ax.set_xticklabels (protocolNames) où protocolNames = [DHCP, statique, PPOE, etc]. Je veux afficher la version du firmware Mes listes de valeurs de microprogramme sont une liste firmwareList = [Build1, Build 2, Build3] Fondamentalement, je vais afficher les noms de protocole et sous les noms de protocole la version du firmware – John

2

Peut-être que je suis malentendu choses, mais en fonction de vos commentaires à @ars, en mettant simplement annexant \n et la version du firmware vos xticklabels devraient faire ce que vous voulez ... (je signale cela comme une réponse afin que je puisse inclure une image par exemple) Par exemple:

import matplotlib.pyplot as plt 
plt.bar(range(3), [10,20,30], align='center') 
plt.xticks(range(3), ['frogs\n1.0.0', 'turtles\n1.0.1', 'cheetas\n2.0.0']) 
plt.show() 

Text beneath labels

Est-ce ce que vous vouliez, ou avez-vous besoin de quelque chose de plus complexe?

+0

Oui, c'est exactement ce que je veux, les grenouilles, les tortues sont une liste et 1.0.0, 2.0.0 sont une autre liste. les données provenant des deux listes et laisser un espace – John

+0

+1 beaucoup plus simple que la méthode de transformation. :) @John: ['% s \ n% s'% (a, b) pour a, b dans zip (['ferme 1', 'ferme 2'], ['0.1', '0.2'])] – ars

+0

Hi Mes deux listes: ['DHCP', 'STATIC', 'DHCP', 'STATIC', 'PPPOE', 'DHCP'] ['1.0.00_build_01', '1.0.00_build_03', '1.0.00_build_05' ] votre code: ['% s \ n% s'% (a, b) pour a, b dans zip (protocolNames, firmwareList)] certains nombres sont affichés sur le graphique. Je ne les vois pas affichés: ( – John

Questions connexes