I am trying to create a curve in the plot, to show me density of the data(the dots). The curve needs to go up/down according to the scatter density, so that I can see where is most dense, where least and so on. I hope you get the picture. Thanks

 Akzeptierte Antwort

Steven Lord
Steven Lord am 30 Aug. 2017

0 Stimmen

Use histcounts to count how much data is located in each bin along the X axis. Use the counts and edges in creating your plot. Alternately, use histogram with 'DisplayStyle', 'stairs'.

3 Kommentare

Dennis Huver
Dennis Huver am 31 Aug. 2017
How can you create a plot when the vectors are not the same length? Counts are 1 less than Edges.
Dennis Huver
Dennis Huver am 31 Aug. 2017
Hey Steven, histogram thing worked. But is there a way to use curve instead of stairs? Thanks!
Dennis Huver
Dennis Huver am 31 Aug. 2017
found a way from another answer. N = histcounts(X, edges); centers = (edges(1:end-1) + edges(2:end))/2; plot(centers, N) works like a charm. if there is more elegant way, let me know. THanks again for the tip! :)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

José-Luis
José-Luis am 31 Aug. 2017
Bearbeitet: José-Luis am 31 Aug. 2017

0 Stimmen

Convoluted way just to avoid repeating Steven's answer:
data = randn(5000,2); %First column xData, second column yData
[f,x] = ecdf(data(:,2));
[n,c] = ecdfhist(f,x,200);
x_val = linspace(min(data(:,1)),max(data(:,1)),200);
plot(data(:,1),data(:,2),'k.','LineWidth', 2);
hold on;
plot(c,n.*3,'r--')

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Hilfe-Center und File Exchange

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by