Problem with plotting on log scale - disappearing line on plot...
19 ビュー (過去 30 日間)
古いコメントを表示
Brendan Blanchard
2016 年 4 月 20 日
コメント済み: Brendan Blanchard
2016 年 4 月 20 日
Hi all,
So I'm working on plotting data for x-y comparisons, along with outliers that have been removed, and a custom-generated trend line, and with the data color coded by sample concentration. This works in the below code:
f2 = figure('visible','on');
hold on
scatter(xout, yout, 25, fcolor,'filled');
hold on
scatter(outlier(:,1),outlier(:,2),25,'k','filled');
hold on
plot(xplot,yplot,'LineWidth',2);
hold on
%set(gca,'xscale','log','yscale','log')
title('Insitu v. Flask Mixing Ratio, Logarithmic');
legend('Flask vs Insitu (ppbv)', 'Outliers', 'Orthogonal Regression Line');
xlabel('Flask (ppbv)')
ylabel('Insitu (ppbv)')
hold off
saveas(f2,'test1','jpeg')
But, it fails when I un-comment line that's setting the scales as logarithmic. The data still plots, and does show the bias I'm looking for, but the regression line disappears. I've tried just about every ordered variation of hold on, off, etc and changed the order things are plotted in etc...I'm stuck.
Any suggestions for tinkering, or is this a legitimate issue with the code and or something I'm missing?
Thanks, Brendan
0 件のコメント
採用された回答
Mike Garrity
2016 年 4 月 20 日
I'm guessing that xplot and yplot are 2 element vectors where one of the values is 0. In that case, one of the 2 points on the line transforms to NaN when the log is calculated, so no line is drawn.
If this is the case, probably the simplest would be to add more vertices to the line using something like this:
t = linspace(0,1,100);
xplot = xplot(1) + t*(xplot(end) - xplot(1));
yplot = yplot(1) + t*(yplot(end) - yplot(1));
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Histograms についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!