R实用绘图--韦恩图

今天带领大家绘制的是韦恩图(Venn diagram),韦恩图属于关系型图表,通过圆圈与圆圈之间的重叠关系,来表示集合与集合之间的相交关系。

一般来说韦恩图只适用于小于等于5个集合的场景,如果集合过多,一方面是不美观,另一方面是常用的R包也不支持。这种情况可以考虑花瓣图或者Upset图等,后续我们都会更新。

数据准备

在这里我准备了四个数值型元素的集合,在R中用向量表示就可以。你也可以采用字符型等其他元素集合。

# 设置不一样的抽样种子,获得4个不一样的集合
# 并把结果固定下来
set.seed(123)
part1 <- sample(1:300,size = 100,replace = F)
set.seed(456)
part2 <- sample(1:300,size = 100,replace = F)
set.seed(666)
part3 <- sample(1:300,size = 100,replace = F)
set.seed(888)
part4 <- sample(1:300,size = 100,replace = F)

查看交集

# 查看四个集合的交集元素
intersect(intersect(part1,part2),intersect(part3,part4))

绘图并保存

# 加载ggvenn包--绘图用
library(ggvenn)
# 加载RColorBrewer--生成颜色用
library(RColorBrewer)

# 把四个集合的向量合并成一个列表
# 注意这里的PART1、PART2、PART3、PART4就是后续展现在图里的集合名称
vennlist1 <- list(PART1=part1,PART2=part2,PART3=part3,PART4=part4)

#绘制韦恩图
p <- ggvenn(vennlist1,
             fill_color=c(brewer.pal(8, 'Set2')[2:5]), # 设置填充颜色
             stroke_size=0.5,  # 集合圆圈的线宽
             set_name_size=3.3, # 集合名称的文本大小
             digits = 0, # 小数点后保留位数
             show_percentage = F # 是否展示每一部分所占的百分比
              )
p          
ggsave("venn.pdf",p,width = 4,height = 4)

绘图效果

绘图效果

系列文章

R实用绘图--相关性热图

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: MATLAB可以通过调用Excel COM对象来读取Excel数据,并使用MATLAB的绘图函数来绘制形。 以下是一个简单的示例代码,用于读取Excel文件中的数据并绘制折线: ```matlab % 读取Excel文件 excel = actxserver('Excel.Application'); workbook = excel.Workbooks.Open('data.xlsx'); sheet = workbook.Sheets.Item(1); range = sheet.UsedRange; data = range.Value; % 关闭Excel workbook.Close(false); excel.Quit(); % 提取数据并绘图 x = data(:,1); y = data(:,2); plot(x, y); xlabel('X'); ylabel('Y'); title('数据'); ``` 在这个例子中,我们首先使用`actxserver`函数创建一个Excel COM对象,然后打开Excel文件并选择要读取的工作表。使用`UsedRange`属性可以获取工作表中使用的单元格范围,然后使用`Value`属性将数据读取到MATLAB中。 读取数据后,我们可以使用MATLAB的绘图函数(例如`plot`)来绘制形。在这个例子中,我们使用第一列作为X轴数据,第二列作为Y轴数据,并添加一些标签和标题。 最后,我们需要关闭Excel COM对象,以释放资源并避免内存泄漏。这可以通过调用`Close`和`Quit`方法来完成。 ### 回答2: MATLAB是一款广泛应用于科学计算和工程设计等领域的软件,它可以快速读取Excel文件并进行数据分析和绘制。在本文中,我们将介绍如何使用MATLAB读取Excel数据并绘图。 1. 读取Excel文件 MATLAB可以通过使用readtable函数轻松地读取Excel文件中的数据。readtable函数可以读取Excel文件中的所有数据或指定工作表中的数据。 创建Excel文件: ![excel文件示例1](https://img-blog.csdn.net/20180425173105957?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGltaXRfZmFjdHVyZXI=) 代码: ```matlab table = readtable('data.xlsx'); %读取整个excel xls文件 % table = readtable('data.xlsx', 'sheet', 'Sheet1'); %读取data.xlsx文件的sheet1数据 data = table2cell(table); % 将 table 类型 转换为 cell 类型 ``` 2. 数据处理 在MATLAB中,我们可以使用不同的数据处理方法,例如加,减,乘和除等运算。可以使用MATLAB的内置函数对这些数据进行各种类型的统计分析。如果我们要画,通常需要做的数据处理有数据清洗、数据转换和数据缩放等。 例如,如果我们想要绘制Excel中两个数字列的对比,那么就需要将这两列分别读取然后进行处理,生成新的比较数据列,再将新的列绘制在一个表上。这些数据处理方法在MATLAB中也非常容易实现。 3. 绘制表 MATLAB支持各种类型的绘制,例如散点,直方,折线,饼和二维/三维等。在本例中,我们将展示如何绘制两列数据的对比。 代码如下: ```matlab % 读取Excel文件 table = readtable('data.xlsx'); data = table2cell(table); % 提取需要比较的两列 col1 = cell2mat(data(:,1)); col2 = cell2mat(data(:,2)); % 绘制散点 scatter(col1,col2); % 添加标题和标签 title('Comparison of two columns from Excel'); xlabel('X axis label'); ylabel('Y axis label'); % 设定X和Y坐标轴的范围 xlim([min(col1) max(col1)]); ylim([min(col2) max(col2)]); ``` 以上代码通过使用scatter函数生成散点,为表添加了标题和标签,并设定了X和Y轴的范围。 通过这篇文章,我们介绍了如何使用MATLAB读取Excel数据并绘制表。MATLAB可以轻松将Excel文件中的数据读取到MATLAB命令窗口,并使用MATLAB的各种数据处理和绘制工具可视化数据。如果您经常需要处理和绘制Excel文件中的数据,使用MATLAB非常方便。 ### 回答3: MATLAB是一种非常简单、快速的数值计算与数据可视化软件。它可以轻松读取Excel文件中的数据,并且可以将这些数据拟合成人们所需要的更具有生动性和可视化的像。 读取Excel数据及转换 MATLAB软件自带内置函数load(),可以直接读取Excel文件中的数据。首先,需要打开Excel文件,然后选择“另存为”类型为“CSV(逗号分隔)(*.csv)”,在保存的过程中Excel表中的“逗号”被视为分隔符号被存储为CSV文件(即数据以逗号分隔的形式存储在文件中),进而可以读取和加载。 代码示例: filename = 'data.csv'; %文件名为data.csv delimiter = ','; %指明分隔符为"," startRow = 2; %数据从excel表格的第2行开始 formatSpec = '%f%f%f%f%f%f%f%f%[^\n\r]'; %读取出每列数据格式 fileID = fopen(filename,'r'); %以只读方式打开data.csv dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter,'HeaderLines', startRow-1, 'ReturnOnError', false); fclose(fileID); %关闭文件 Data = [dataArray{1:end-1}]; %读取表格中数值型数据 textData = dataArray{end}; %读取表格中字符数据 clearvars filename delimiter startRow formatSpec fileID dataArray ans; 实现数据可视化 在读取数据之后,可以对数据做一些运算或者改变展现形式(如某些奇技淫巧),从而可以通过MATLAB进行更直观的像展示。 代码示例: 1.绘制折线 plot(Data(:,1),Data(:,5));%绘制第1列与第5列之间的折线 2.绘制散点 scatter(Data(:,2),Data(:,5));%绘制第2列与第5列之间的散点 3.绘制柱状 bar(Data(:,3));%绘制第3列的柱状 4.绘制饼状 pie(Data(:,7));%绘制第7列的饼 5.绘制3D mesh(Data(:,6),Data(:,4),Data(:,8)); %绘制第4、6和8列的三维坐标系 总结与展望 MATLAB读取Excel数据并绘图是一个相对简单但又十分实用的技能。在实际应用中,数据可视化有助于我们更好的了解数据,从中更快速和高效地获取我们所需要的信息,更精确地进行决策。 值得注意的是,MATLAB读取Excel并绘图也存在一些限制性,如对数据量大小、数据类型以及对于不符合默认条件的Excel文件格式等方面进行的处理等。因此,在实际使用过程中,需了解Excel数据的具体格式,并合理使用MATLAB函数进行分析与展示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮肤小白生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值