美文网首页
【MATLAB】使用MATLAB绘制心理学中的交互作用图

【MATLAB】使用MATLAB绘制心理学中的交互作用图

作者: 韦子谦 | 来源:发表于2020-09-28 17:36 被阅读0次

分享一下画图的脚本,主要是留个备份,以后自己画图时方便查找~

该脚本主要使用了MATLAB绘图的一些基础知识,比较麻烦的是error bar的绘制,个人感觉本文使用这个方法是比较好用的(我也试过下载别人的function来画error bar,但没有找到合适的)。

以下是代码,语句都比较容易理解,且做了注释,所以就不一一阐述了。

clc;
clear;
close all;

% 示例:绘制3(A: A1, A2, A3)*3(B: B1, B2, B3)交互作用图

% 准备数据:行是自变量A的数据,列是自变量B的数据
mean = [487.111, 515.761, 638.639; 479.261, 503.000, 546.315; 583.183, 387.921, 421.831];  % 因变量均值
se = [22.318, 37.683, 28.271; 27.391, 53.286, 46.012; 42.371, 53.146, 38.917];  % 因变量标准误

% 绘图
figure = bar(mean); % 使用bar函数绘制直方图,如果想绘制线形图,则使用plot函数
hold on;    % 在同一个图中绘制多个数据时需要用“hold on”函数

% 在同一个图中,绘制出误差棒
% (1)在这个例子中,如果我们直接用errorbar(mean, se)绘制误差棒
% (2)会导致误差棒重叠在横坐标为1、2、3的三个位置上
% (3)所以我们需要定义一个数组,指定每个误差棒的横坐标
x = [0.775 1 1.225; 1.775 2 2.225; 2.775 3 3.225]; % 与mean中的元素一一对应
for i = 1:3 % 依次绘制出mean中每一行的误差棒
    errorbar(x(:,i), mean(:,i), se(:,i), 'k', 'Linestyle', 'None'); % 绘制黑色的误差棒,不画线条
end

box off;    % 去掉上方和右边的框线

% 设置轴的名称
xlabel('A');    % x轴名称
ylabel('Reaction time (ms)');   % y轴名称

% 设置轴的刻度值和区间
set(gca, 'XTickLabel', {'A1', 'A2', 'A3'});  % x轴的刻度值
set(gca, 'XLim', [0.5, 3.5]);   % x轴区间
set(gca,'YLim', [0, 700]);  % y轴区间

% 更改颜色
set(figure(1),'FaceColor','#a2a2a2');
set(figure(2),'FaceColor','#c6c6c6');
set(figure(3),'FaceColor','#ececec');

% 设置字体、字号
set(gca, 'Fontname', 'Times New Roman');    % 字体
set(gca,'Fontsize', 12);    % 字号

% 添加图例
% (1)前面几个参数('B1'、'B2'、'B3')是图例中各数据的名称
% (2)如果默认的位置不太好看,我们可以通过'Location'参数指定图例的位置
% (3)"上下左右"分别对应"东南西北",例如"右上角"对应'northeast'
legend('B1', 'B2', 'B3', 'Location', 'northeast');

% 添加标题
title('The interaction between A & B');

最终效果图如下。

关于导出

(1)如果是用于组会汇报、期刊投稿,一般而言300dpi的位图就足够了(当然投稿的话,具体还是要根据期刊的要求),在绘图窗口中,选择“文件”——“导出设置”,在“渲染”页面中将“分辨率(dpi)”一栏的参数更改为“300”,便可将导出图像的大小更改为300dpi。
(2)如果是要打印成poster,推荐导出为矢量图格式,例如svg。

关于配色

可以在encycolorpedia这个网站上寻找,例如我们可以搜索“grey”,然后点击第一个条目。

在“阴影色调和暗色泽”一栏,便可以找到配色方案。

然后便可以在相应的代码中选择想要使用的颜色,“FaceColor”指的就是直方图中柱子的颜色,此外“EdgeColor”可以修改柱子框线的颜色,例如:

% 更改颜色
set(figure(1),'FaceColor','#a2a2a2', 'EdgeColor','#a2a2a2');
set(figure(2),'FaceColor','#c6c6c6', 'EdgeColor','#c6c6c6');
set(figure(3),'FaceColor','#ececec', 'EdgeColor','#ececec');

修改之后的效果如下。

相关文章

  • 【MATLAB】使用MATLAB绘制心理学中的交互作用图

    分享一下画图的脚本,主要是留个备份,以后自己画图时方便查找~ 该脚本主要使用了MATLAB绘图的一些基础知识,比较...

  • matplotlib作图

    类MATLAB API 加载方式from pylab import * 图形绘制与matlab相似 matplot...

  • bar

    matlab中函数bar绘制直方图中的应用函数bar(x)可以绘制直方图

  • matplotlib包

    一、概述 matplotlib是matlab绘图python中的应用。 二、图片和子图 plt绘制的图片都在一个图...

  • spectrogram强制使用Hz为频率单位

    通常,我们使用matlab内置函数spectrogram来绘制信号的时频图,非常的方便。但是对于下图,显然我们只关...

  • 2018-09-19 Matlab 绘制动态图

    Matlab 绘制动态图 drawnow 更新图窗并处理回调 将动态图保存为gif

  • matlab绘制网格图

    meshgrid函数 用来生成坐标网格。eg. [X Y]=meshgrid(1:3, 10:14); 从上到下,...

  • matlab绘制网格图

    meshgrid函数 用来生成坐标网格。eg. [X Y]=meshgrid(1:3, 10:14); 从上到下,...

  • 手眼标定(Hand in Eye)

    使用的棋盘格:25*25,每格20mm Matlab Matlab相机标定文档Matlab官方视频:Camera ...

  • matplotlib绘图入门详解

    matplotlib是受MATLAB的启发构建的。MATLAB是数据绘图领域广泛使用的语言和工具。MATLAB语言...

网友评论

      本文标题:【MATLAB】使用MATLAB绘制心理学中的交互作用图

      本文链接:https://www.haomeiwen.com/subject/jsvcuktx.html