Wie die Breite der Balken gleich, egal die Anzahl der Bars halten wir in der Abbildung vergleichen?
-
27-09-2019 - |
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
vergleichenimport 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
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()