Я только начинаю с matplotlib.pyplot и немного застрял.штабелированная гистограмма - пространство между осью y и первым баром: matplotlib.pyplot
Используя пример в документации matpltlib.pyplot, я создал столбчатую диаграмму используя следующий код:
import numpy as np
import matplotlib.pyplot as plt
N = 7
OECD = (242, 244, 255, 263, 269, 276, 285)
NonOECD = (282, 328, 375, 417, 460, 501, 535)
Sum = ('524', '572', '630', '680', '729', '777', '820')
ind = np.arange(N)
width = 0.5
p1 = plt.bar(ind, NonOECD, width, color = 'r')
p2 = plt.bar(ind, OECD, width, color = 'b', bottom = NonOECD)
plt.ylabel('Quadrillion Btu')
plt.title('World Total Energy Consumption 2010 - 2040')
plt.xticks(ind+width/2., ('2010', '2015', '2020', '2025', '2030', '2035', '2040'))
plt.yticks(np.arange(0, 1001, 200))
plt.legend((p1[0], p2[0]), ('Non - OECD', 'OECD'), loc = 2, frameon = 'false')
plt.tick_params(top = 'off', bottom = 'off', right = 'off')
plt.grid(axis = 'y', linestyle = '-')
plt.show()
Однако, я бы предпочел, если первый бар (2010) не прав против оси y.
Я попытался просто прибавление 1 к отру в обоих plt1 и plt2
т.е.
p1 = plt.bar(ind+1, NonOECD, width, color = 'r')
p2 = plt.bar(ind+1, OECD, width, color = 'b', bottom = NonOECD)
Но, я не могу работать эквивалентное изменение для ticklabels. Итак, до сих пор все, что я производил, это:
Сказав это, я могу сделать это, сделав N = 8, добавив дополнительный нулевой первый член в обоих кортежах? ОЭСР и NonOECD и добавление пустой xticklabel:
т.е.
N = 8
OECD = (0, 242, 244, 255, 263, 269, 276, 285)
NonOECD = (0, 282, 328, 375, 417, 460, 501, 535)
Sum = (0, '524', '572', '630', '680', '729', '777', '820')
plt.xticks(ind+width/2., ('', '2010', '2015', '2020', '2025', '2030', '2035', 2040'))
Однако, я не могу использовать эту выдумку, как я хочу, чтобы отобразить итоговые on top of the stacks ....
Вы хотите использовать 'plt.xlim' или' ax.set_xlim' – tacaswell