Wie die Breite der Balken gleich, egal die Anzahl der Bars halten wir in der Abbildung vergleichen?

StackOverflow https://stackoverflow.com/questions/3448350

Frage

Ich mag das gleiche die Breite der Balken halten, egal die Anzahl der Balken im Vergleich hoch oder niedrig ist. Ich bin mit Matplotlib gestapeltes Balkendiagramm. die Breite der Balken ist, das die Anzahl der Stäbe relativ. Hier ist mein Beispielcode.

Wie kann ich Materie die Breite derselben nicht die Anzahl der Takte I von 1 bis 10

vergleichen
import numpy as np
import matplotlib.pyplot as plt




N =1  
ind = np.arange(N)    # the x locations for the groups
width = 0.35       # the width of the bars: can also be len(x) sequence




design = []
arch = []
code = []

fig = plt.figure()



b   = [70]
a= np.array([73])
c = [66]




p1 = plt.bar(ind, a,width, color='#263F6A')
p2 = plt.bar(ind, b, width, color='#3F9AC9', bottom=a)
p3 = plt.bar(ind, c, width, color='#76787A', bottom=a+b)


plt.ylabel('Scores')
plt.title('CQI Index')


plt.xticks(ind+width/2., ('P1'))#dynamic - fed

plt.yticks(np.arange(0,300,15))


plt.legend( (p1[0], p2[0], p3[0]), ('A','B','C') )
plt.grid(True)

plt.show()

Danke

War es hilfreich?

Lösung

Die Breite der Balken ändert sich nicht, das Ausmaß des Bildes ändert. Wenn Sie möchten, bleiben die Waage das gleiche Sie manuell festlegen, welche reichen Sie zeigen möchten, ob Ihr Grundstück ist 10x10, 100x100 oder 1000000000 x 10

Edit:

Wenn ich richtig verstehe, was Sie wollen, ist so etwas wie folgt aus:

Grafik 1 bis 2 Bars:

10
+---------------------------+
|                           |
|                           |
|                           |
|                           |
|                           |
|       4_                  |
|       | |                 |
|  2_   | |                 |
|  | |  | |                 |
|  | |  | |                 |
+---------------------------+ 10

Abbildung 2 - fügen Sie 2 weitere Bars

10
+---------------------------+
|                           |
|                           |
|                 7_        |
|                 | |       |
|                 | |       |
|       4_        | |       |
|       | |  3_   | |       |
|  2_   | |  | |  | |       |
|  | |  | |  | |  | |       |
|  | |  | |  | |  | |       |
+---------------------------+ 10

Wenn die scheinbare Breite der Balken nicht aus Grafik 1 bis Grafik geändert 2. Wenn das ist, was Sie tun möchten, dann müssen Sie den Umfang Ihres Handlung setzen

Das können Sie mit

import matplotlib
matplotlib.use('GTKAgg')

import matplotlib.pyplot as plt
import gobject

fig = plt.figure()
ax = fig.add_subplot(111)

def draw1():
    plt.bar(0,2)
    plt.bar(2,4)
    ax.set_xlim((0,10))
    ax.set_ylim((0,10))
    fig.canvas.draw()
    return False

def draw2():
    plt.bar(4,3)
    plt.bar(6,7)

    ax.set_xlim((0,10))
    ax.set_ylim((0,10))
    fig.canvas.draw()
    return False

draw1()
gobject.timeout_add(1000, draw2)
plt.show()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top