Как построить неравные ширины гистограммы с MatLab?

StackOverflow https://stackoverflow.com/questions/2379230

  •  24-09-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

Вот пример:

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

Другие советы

2 решения:

  1. Укажите bin центры с 2-м аргументом для источник.
  2. Укажите bin Ребра с 2-м аргументом для Histc.. Отказ Эта функция принимает дополнительную обработку, поскольку она не генерирует график напрямую - следуйте ссылку для примера использования.

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

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

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

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

Или просто просто, просто используйте HIST.

hist(rand(1000,1),[0 .1 .3 .6 1])
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top