Гистограмма Python с одним значением - PullRequest
0 голосов
/ 15 октября 2018

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

Desired histogram

Мой код очень прост, у меня есть только одно значение, которое я хочу отобразить в виде гистограммы (процентное число)

Моя проблема заключается в следующем: как я могу установить шкалу y, чтобы она составляла 25 приращений (например,0, 25, 75, 100) и как мне использовать только одну корзину с центром на левой стороне?

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

import matplotlib.pyplot as plt
from numpy.random import normal
percent_number = 100.0
my_bin = 25
plt.hist(percent_number, bins=my_bin)
plt.title("-")
plt.xlabel("-")
plt.ylabel("percent")
plt.show()

Это выводит:

Actual histogram

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Один из вариантов - создать узкую фигуру, как показано в ответе Базингаа, другой вариант - установить положение и ширину осей самостоятельно, используя ax.set_position().Список, который вы передаете, - это новая позиция осей: [слева, снизу, ширина, высота].Это означает, что вы можете выбрать, где будут отображаться оси, и какова будет ширина / высота.Обратите внимание, что цифры указаны в координатах рисунка:

import matplotlib.pyplot as plt

plt.gca().set_position([0.2,0.1,0.1,0.8])

percent_number = 75

plt.bar(0, percent_number, align = "edge")
plt.title("-")
plt.xlabel("-")
plt.ylabel("percent")
plt.ylim(0,110)
plt.xticks([]) # remove x ticks
plt.yticks([0,25,50,75,100])
plt.margins(0) # remove extra whitespace

plt.show()

enter image description here

0 голосов
/ 15 октября 2018

Вам нужно не гистограмма, а гистограмма с очень узкой цифрой, определяемой figsize.Затем вы устанавливаете пределы оси X равными ширине полосы и скрываете отметки X.Полный код ниже:

import matplotlib.pyplot as plt
from numpy.random import normal

fig = plt.figure(figsize=(1, 6)) # Define a thin figure

percent_number = 87
plt.bar(0.5, height=percent_number, width=1, align='center')
plt.ylabel("percent")
plt.xlim(0, 1)
plt.ylim(0, 130)
plt.xticks([]) # Hide the x-ticks
plt.yticks([0, 25, 50, 75, 100]) # Set the desired y-ticks

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...