Data Visualization V: Bar plot

作者:潘亚峰

写在前面


     有时候,看到人家Paper里的图,不禁感叹,为啥连简单的柱状图都画的比我们的好看。这很有可能是我们画图没掌握好技巧,而这些技巧需要我们慢慢去积累。今天搬运了Cognitive and Affective Neuroscience Lab (CANLab, PI: Dr. Tor D. Wager)制作的bar_wani绘图方法,大家赶紧收藏积累吧!


方法:Bar_wani

软件:matlab 2014a

用途:好看、实用、可塑性强的柱状图可视化。

源脚本链接:https://github.com/canlab/Canlab ... alization_functions 找到bar_wani.mWani Woo,2014


源脚本可能有小bug,部分机器存在无限递归现象,可以直接下载修改好的脚本:



% datay = [-0.6518   -0.6934   -0.5417  
-0.6496   -0.5946   -0.3839    
1.1511    0.9090    1.1681    
1.2892    0.9346 ] ; % Y值

e = [0.3226    0.2936    0.3080    
0.3203    0.3368    0.3167    
0.4026    0.4088    0.4012    
0.5586    0.3734 ] ; % 标准误

p = [0.0433    0.0182    0.0785    
0.0426    0.0775    0.2255    
0.0042    0.0262    0.0036    
0.0210    0.0123 ] ; % p值

col =  [0    0.1157    0.2686    0.1157    0.2765  
0.4725    0.4843    0.1157    0.1078    0.3667    
0.4765    0.1353    0.2765    0.1902    0.3824    
0.0922    0.4216    0.5118    0.7941    0.3235 ]; % colormap调色

% draw
h = bar_wani(y, e, .8, 'colors', col,'errbar_width', [0 0], 'ast', p, 'ylim', [-2.5 2.5], 'ytick', -2:2, 'ast_adj_x', 0, 'ast_adj_y_neg', .15);
set(gca, 'ytickLabel', num2str(get(gca, 'ytick')'));
set(h, 'position', [1   531   399  169] );

题外话:很多同学看完示例喜欢提问,要画成另一个样子该怎么改。这其实反映了大家在利用脚本进行可视化的过程中,忽略了对原脚本理解的过程,直接“拿来主义”。我们要真正学会可视化,积累是第一步,理解紧随其后,没有理解,我们还是走得不远,因为过度依赖现成的脚本。有了理解,我们可以修改现有的脚本,画出适用于自己实验的图。对于每一次积累,大家都要珍惜,这是前辈们努力和智慧的结晶,需要我们好好体会可视化中的精髓。话糙理不糙,让我们一起加油吧,慢慢来!

那么,试着练习如何用该脚本画出两两比较的柱状图吧,有idea的童鞋可以在留言区讨论。为了让你的可视化技巧提高,千万不要偷懒哦~