我有点困惑如何为以下示例绘制条形图:
x_lims = [1000,10000;10000,100000;100000,1000000;1000000,10000000;10000000,...
100000000;100000000,1000000000;1000000000,10000000000;...
10000000000,100000000000;100000000000,1e12];
ex1 = [277422033.049038;24118536.4203188;2096819.03295482;...
182293.402068030;15905;1330;105;16;1];
这里,x_lims是每个单独柱状图的x轴限制,ex1是计数。如何在柱状图上绘制它们,以使每个单独柱状图沿x轴的宽度由x_lims (:,1)和x_lims (:,2)之间的距离定义,y值由ex1定义?
到目前为止我有:
bar(log10(x_lims(:,1)),log10(ex1));
set(gca,'Xtick',3:11,'YTick',0:9);
set(gca,'Xticklabel',10.^get(gca,'Xtick'),...
'Yticklabel',10.^get(gca,'Ytick'));
我希望 (1) 标签与使用 semilogx 或 semilogy 创建的标签相同,例如 10^9,并且 (2) 我想删除条形之间的空格。例如,对于第一根柱子,我希望它水平延伸从 1000 到 10000,第二根柱子从 10000 延伸到 100000,以此类推。如何实现这个效果?
刚刚意识到我可以使用
'BarWidth', 1
定义条形的宽度。
那么,如何将标签更改为10 ^,并使条形在x_lims的值上延伸而不是在刻度的中间(如果有意义的话)。
set(gca,'XTick',mytest_x_axis,'XTickLabel',mytest_timeline)
。这里的my_test_x_axis
是x轴,例如1:10,而my_test_timeline
是一个具有10个元素的时间轴,我希望将其作为新的x轴。对于对数比例尺,请使用histc()
计算每个bin中的计数。然后计算对数,然后使用bar()
绘制新值。 - The Minion