Как построить гистограммы неравной ширины с Matlab? - PullRequest
7 голосов
/ 04 марта 2010

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

Пожалуйста, помогите мне ... большое спасибо !!

Ответы [ 3 ]

16 голосов
/ 04 марта 2010

Вот пример:

x = randn(100,1)*3;           %# some random data
e = [-10 -5 -3 -1 1 2 3 20];  %# edges of intervals:  e(i) <= x < end(i+1)
c = histc(x,e);               %# get count in each interval
bar(e, c, 'histc')            %# bar plot
set(gca, 'xlim',[e(1) e(end)])

output

5 голосов
/ 04 марта 2010

2 решения:

  1. Укажите бин центров с 2-й аргумент истори .
  2. Указать корзину Края с помощью 2-й аргумент histc . это функция требует дальнейшего развития обработка, так как это не генерировать график напрямую - следуйте ссылка на пример использования.
2 голосов
/ 04 марта 2010

Вы можете создать свой собственный инструмент для создания гистограммы по своему усмотрению.

  • Используйте Хисток, чтобы определить, какие корзины каждая точка попадает внутрь.

  • Затем используйте accumarray для подсчета количества элементов в каждом бине.

  • Затем используйте панель для рисования полос выбранной ширины. Или просто создать патчи заданных размеров. Используйте патч для этого.

Или, проще говоря, просто используйте исторических.

hist(rand(1000,1),[0 .1 .3 .6 1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...