Как добавить много горизонтальных полос к каждой вертикальной полосе? - PullRequest
1 голос
/ 29 апреля 2019

Я хочу создать аналогичные диаграммы, подобные диаграмме ниже, для каждой вертикальных полос , я хочу добавить 10 лучших значений как горизонтальных полос (нелинии), но я не могу понять, какие инструменты мне следует использовать.

Example of wanted output

1 Ответ

0 голосов
/ 29 апреля 2019

Вы должны быть в состоянии указать другие графики в виде горизонтальных гистограмм, и они появятся в верхней части первого созданного графика. Вот как я нанес горизонтальную гистограмму поверх вертикальной. Используемые данные были составлены для этого, поэтому график не очень красивый, но код будет таким же.

   N = 5
   menMeans = (20, 35, 30, 35, 27)
   womenMeans = (25, 32, 34, 20, 25)
   menStd = (2, 3, 4, 1, 2)
   womenStd = (3, 5, 2, 3, 3)
   ind = np.arange(N)    # the x locations for the groups
   y_pos = [10, 20, 30, 40, 50]  #locations of the horizontal bars
   width = 0.35       # the width of the bars
   h_width = 1.0      #width of the horizontal bars
   h_x_loc = 1.18      #This will be used to change the x location of the 
                       #horizontal bars.

   p1 = plt.bar(ind, menMeans, width, yerr=menStd)
   p2 = plt.barh(y_pos, womenStd, width, left=h_x_loc, yerr=0)

   plt.ylabel('Scores')
   plt.title('Scores by group and gender')
   plt.xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))
   plt.yticks(np.arange(0, 81, 10))
   plt.legend((p1[0], p2[0]), ('Men', 'Women'))

   plt.show()

Обратите внимание, что для выравнивания каждой группы горизонтальных полос с соответствующей правильной вертикальной полосой вам нужно будет создать отдельный график для каждой группы и изменить положение x для этой группы.

...