Изменение оси графика гистограммы в Matlab - PullRequest
2 голосов
/ 05 декабря 2011

Я хочу смоделировать значения, которые представляют геометрическое распределение. Сюжет, который я сделал с помощью приведенного ниже кода, похоже, дает правильный график. Но я хочу, чтобы ось x была не в своем положении, а также я хочу, чтобы ось x была пронумерована 1,2,3 и т. Д. Вместо 10,20,30 и т. Д., Которые я получаю сейчас. Я также хочу построить ось Y как логарифмическую шкалу. Я пытаюсь получить график X, указанный в коде.

%Geometric Distribution%
N=100;%Number of simulation
P=0.1;
X=zeros(N,1);%simulation data
Ti=0;%Counter

for Ti=2:N
  U=rand(1);
  a=log10(U);
  b=log10(1-P);
  c=(a/b);
  d=1+round(c);
  X(Ti)=d;
  Ti=Ti+1;
end

t = 0:N-1;
hist(X);

Ответы [ 2 ]

3 голосов
/ 05 декабря 2011

hist(X,min(X):max(X))

enter image description here

2 голосов
/ 05 декабря 2011

Построить гистограмму с логарифмическим масштабом сложно.Смотрите: Как построить историю с логарифмическим масштабом , или используйте это:

[n, xout] = hist(X,0:max(X));
bar(xout, n, 'barwidth', 1, 'basevalue', 1);
set(gca,'YScale','log')
...