Matlab三维散点图绘制:连接不同Sheet坐标点并添加数据标签

本文将介绍如何使用Matlab从Excel文件中读取坐标数据,并在三维空间中绘制散点图。我们将涵盖以下几个方面:

  1. 从Excel文件读取数据
  2. 绘制三维散点图
  3. 连接不同Sheet中的坐标点
  4. 添加文本标签和数据标签

代码示例

% 设置文件名和sheet名
file = '混合表.xls';
sheet1 = 'Sheet1';
sheet2 = 'Sheet2';

% 读取第一个sheet内的坐标信息
[num1, txt1, raw1] = xlsread(file, sheet1);
x1 = num1(:, 1);
y1 = num1(:, 2);
z1 = num1(:, 3);
names1 = txt1(:, 4); % 假设第四列是点的名称

% 读取第二个sheet内的坐标信息
[num2, txt2, raw2] = xlsread(file, sheet2);
x2 = num2(:, 1);
y2 = num2(:, 2);
z2 = num2(:, 3);
names2 = txt2(:, 4); % 假设第四列是点的名称

% 读取矩阵2的数据
matrix2 = xlsread('物理网络.xlsx');

% 读取矩阵1的数据
matrix1 = xlsread('逻辑网络.xlsx');

% 绘制三维散点图
figure;
scatter3(x1, y1, z1, 'r', 'filled');
hold on;
scatter3(x2, y2, z2, 'b', 'filled');
xlabel('X');
ylabel('Y');
zlabel('Z');
title('网络空间负载配置图');
legend(sheet1, sheet2);
grid on;

% 绘制相同x和y坐标的点之间的虚线连接
for i = 1:length(x1)
    idx = find(x2 == x1(i) & y2 == y1(i));
    if ~isempty(idx)
        plot3([x1(i), x2(idx)], [y1(i), y2(idx)], [z1(i), z2(idx)], '--k');
        
        % 添加对应矩阵1的数据标签
        text((x1(i)+x2(idx))/2, (y1(i)+y2(idx))/2, (z1(i)+z2(idx))/2, num2str(matrix1(i, idx)), 'Color', 'k', 'FontSize', 8, 'HorizontalAlignment', 'center', 'VerticalAlignment', 'middle');
    end
end

% 添加文本标签
for i = 1:length(x1)
    text(x1(i), y1(i), z1(i), names1{i}, 'Color', 'red', 'FontSize', 8);
end
for i = 1:length(x2)
    text(x2(i), y2(i), z2(i), names2{i}, 'Color', 'blue', 'FontSize', 8);
end

% 连接z轴不为零的点
for i = 1:length(x2)
    for j = 1:length(x2)
        if matrix2(j, i) ~= 0
            plot3([x2(i), x2(j)], [y2(i), y2(j)], [z2(i), z2(j)], '-b');
            
            % 添加对应矩阵2的数据标签
            text((x2(i)+x2(j))/2, (y2(i)+y2(j))/2, (z2(i)+z2(j))/2, num2str(matrix2(j, i)), 'Color', 'k', 'FontSize', 8, 'HorizontalAlignment', 'center', 'VerticalAlignment', 'middle');
        end
    end
end

代码解释

  1. 读取数据: 使用xlsread函数从Excel文件中读取数据。
  2. 绘制散点图: 使用scatter3函数绘制三维散点图。
  3. 连接坐标点: 使用plot3函数连接不同Sheet中相同x和y坐标的点,并使用find函数找到对应点的索引。
  4. 添加文本标签: 使用text函数添加点的名称作为文本标签。
  5. 添加数据标签: 在连接坐标点的同时,使用text函数添加读取的矩阵数据作为数据标签,并设置标签的格式和位置。

总结

本文介绍了如何使用Matlab绘制三维散点图,并连接不同Sheet中的坐标点。此外,我们还学习了如何添加文本标签和数据标签,以增强图表的可读性和信息量。通过修改代码中的文件名、Sheet名、矩阵数据和标签格式,你可以根据自己的需求创建各种类型的三维散点图。

Matlab三维散点图绘制:连接不同Sheet坐标点并添加数据标签

原文地址: https://www.cveoy.top/t/topic/Gjp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录