У меня есть два вектора c и d, гистограмма которых мне нужно строить рядом друг с другом на той же фигуре в Matlab. когда я делаю hist (c); держаться; hist (d) масштаб меняется, и я не вижу гистограммы вектора c. Где я иду не так? Любая помощь будет оценена.Построить гистограмму бок о бок в Matlab
ответ
Вы можете использовать axis([xmin xmax ymin ymax])
для управления осью x и y и выбрать диапазон, который отобразит обе гистограммы. В зависимости от того, как вы хотите, чтобы ваш график выглядел, вы также можете попытаться использовать nelements = hist(___)
, чтобы получить количество элементов в каждом ящике, а затем построить их с помощью bar(x,nelements)
для управления расположением каждого бара.
Если вы хотите, чтобы два быть на том же рисунке, вы можете попробовать корректировки X
и Y
ограничения в соответствии с вашими потребностями (попробуйте help xlim
и help ylim
). Однако построение их на одном рисунке может не всегда соответствовать вашим потребностям, так как конкретный участок должен, конечно, поддерживать определенный предел для X
и Y
.
Если отображая их бок о бок в разных фигурах было бы достаточно, однако, вы могли бы рассмотреть вопрос об использовании subplot()
:
>> A=[1 1 1 2 2];
>> B=[1 2 2 2 2];
>> figure(1);
>> hold on;
>> subplot(1,2,1);
>> hist(A);
>> subplot(1,2,2);
>> hist(B);
Результирующая фигура:
Обратите внимание, как различные пределы оси сохраняются.
hist
предполагает, что вы хотите, чтобы разделить диапазон на 10 размеров бункеров равных по умолчанию. Если вы хотите использовать одни и те же ячейки для обеих гистограмм, сначала найдите диапазон ваших значений и создайте набор центров бинов (например, binCenters = linspace(min(x), max(x), 15)'), then call
hist (x, binCenters) `.
Я использую гистограммы MATLAB довольно часто и написал этот маленький сценарий matlab для построения двух гистограмм (первый один красный и второй синий) на одном рисунке. Сценарий довольно прост, но важно то, что гистограммы должны быть сопоставимыми (то есть равномерно распределенные ячейки).
function myhist(varargin)
% myhist function to plot the histograms of x1 and x2 in a single figure.
% This function uses the same xvalue range and same bins to plot the
% histograms, which makes comparison possible.
if nargin<2
x1 = cell2mat(varargin(1));
x2 = x1;
res = 100;
elseif nargin==2
x1 = cell2mat(varargin(1));
if length(cell2mat(varargin(2)))==1
res = cell2mat(varargin(2));
x2 = x1;
else
x2 = cell2mat(varargin(2));
res = 100;
end
elseif nargin>2
x1 = cell2mat(varargin(1));
x2 = cell2mat(varargin(2));
res = cell2mat(varargin(3));
end
if numel(x1)~=length(x1) || numel(x2)~=length(x2)
error('Inputs must be vectors.')
return
end
xrangel = max(min(x1),min(x2));
xrangeh = min(max(x1),max(x2));
x1_tmp = x1(x1>=xrangel & x1<=xrangeh);
x2_tmp = x2(x2>=xrangel & x2<=xrangeh);
xbins = xrangel:(xrangeh - xrangel)/res:xrangeh;
hist(x1_tmp,xbins)
hold on
h = findobj(gca,'Type','patch');
set(h,'FaceColor','r','EdgeColor','w');
hist(x2_tmp,xbins)
- 1. MatLab: отображение фигур бок о бок
- 2. Динамический бок бок о бок
- 3. Бок о бок divs
- 4. UICollectionViewCell бок о бок
- 5. Бок о бок Divs?
- 6. Stackpanels бок о бок
- 7. CKEditor бок о бок
- 8. Элементы бок о бок?
- 9. Бок о бок divs
- 10. Плавающий бок о бок
- 11. Подписи в бок о бок?
- 12. Как построить многократные распределения вероятностей бок о бок в R?
- 13. Получение изображений, чтобы показать бок о бок в matlab
- 14. Как построить бок о бок с помощью таблицы частот?
- 15. Поместите изображения бок о бок
- 16. Отзывчивая бок о бок изображения
- 17. Помещение divs бок о бок
- 18. Бок о бок столы java
- 19. земля GList бок о бок
- 20. Бок о бок установки MySQL
- 21. 2 аккордеоны бок о бок
- 22. Отображение tableviewcell бок о бок
- 23. Размещение divs бок о бок
- 24. Таблицы SSRS бок о бок
- 25. Фрагмент бок о бок android
- 26. Положить форму бок о бок
- 27. CSS - отзывчивые бок о бок
- 28. Показано фрагменты бок о бок
- 29. Two TableLayouts бок о бок
- 30. бок о бок pref android