当前位置: 首页 > news >正文

MATLAB绘图基础8:双变量图形绘制

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。



8.双变量图形绘制
8.1 散点图
  • 散点图用于显示两个变量间的关系,每个数据点在图上表示为一个点,一个变量在 X {\rm X} X轴,一个变量在 Y {\rm Y} Y轴,通过观察散点图,可以观察两个变量之间的趋势、关联性和离群值;

  • 散点图应用情况:

    • 关联分析:散点图可以确定两个变量之间是否存在关联关系,如果散点图显示数据点在图上形成一条趋势线,则可以说明两个变量间存在一定的关联关系;
    • 异常值检测:通过散点图,可以识别任何偏离正常模式的异常值,异常值通常是图上离群的数据点;
    • 集群识别:如果散点图上存在多个簇(聚类),则可以推断数据在不同组之间具有不同的特性;
    • 趋势分析:散点图可以帮助分析数据的趋势,如:是否存在周期性的模式或趋势;
    • 相关性分析:通过计算两个变量间的相关系数,可以定量衡量变量间的关联程度;
  • 散点图应用示例:

    • 金融市场分析:用于分析不同资产间的相关性,以便构建投资组合;
    • 医学研究:用于研究药物剂量与患者症状间的关系;
    • 生态学:用于分析不同环境因素间的相互作用,如:温度和物种多样性间的关系;
    • 制造业质量控制:用于检测生产过程中的异常值和质量问题;
  • 散点图绘制基本语法:

    % 散点图绘制基本语法:
    % scatter(x, y)% 参数说明:
    % x:包含X轴数据的向量;
    % y:包含Y轴数据的向量;% 其他参数说明:
    % 'Marker':用于指定标记符号;
    % 'MarkerFaceColor':用于指定标记的填充颜色;
    % 'MarkerEdgeColor':用于指定标记的边框颜色;
    % 'SizeData':用于指定标记的大小;
    
    % ch08_01.m
    clear;
    clc;% 1.生成随机模拟数据;
    x = rand(500, 1);
    y = rand(500, 1);% 2.绘制散点图;
    scatter(x, y, 'Marker', 'o', 'MarkerFaceColor', 'r', 'MarkerEdgeColor', 'g', 'SizeData', 20);% 3.标题、标签;
    xlabel('X轴');
    ylabel('Y轴');
    title('散点图基本绘制示例');% 4.保存高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_01.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    1

  • 分类散点图:

    % 分类散点图是用于可视化分类或分组数据的图形表示方法,数据点按类别分组,并以不同颜色或标记符号区分;
    % gscatter函数基本语法:
    gscatter(x, y, group, colors, markers)% 参数说明:
    % x、y:数据点的X坐标和Y坐标,分别表示在散点图中水平和垂直的位置;
    % group:一个包含分类信息的单元数组或单元矩阵,定义了每个数据点所属的类别或分组;
    % colors:一个包含颜色的字符串数组,定义了每个组的颜色;
    % markers:一个包含标记符号的字符串数组,定义了每个组的标记符号;
    
    % ch08_02.m
    clear;
    clc;% 1.生成模拟数据;
    data = [randn(200, 1), randn(200, 1);2 + randn(200, 1), 2 + randn(200, 1)];% 2.分组标签;
    group = [repmat({'Group1'}, 200, 1);repmat({'Group2'}, 200, 1)];% 3.创建分类散点图;
    gscatter(data(:,1), data(:,2), group, 'bg', 'xo');% 4.标签、标题、图例;
    xlabel('X轴');ylabel('Y轴');
    title('分类散点图');
    legend('Group1', 'Group2');
    grid on;% 5.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_02.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    2

8.2 折线图
  • 折线图:用于显示两个变量之间的趋势随时间的变化;

  • 折线图应用示例:

    • 股票价格趋势图:用于展示股票价格随时间的波动情况,帮助投资者分析股票的走势和趋势;
    • 气温变化趋势图:用来展示某个地区的气温随季节或年份的变化,帮助人们理解气候模式和季节性变化;
    • 销售数据趋势图:用来跟踪产品销售数据随时间的变化,帮助企业管理者了解产品销售的季节性、趋势和周期性模式;
    • 生产指标趋势图:用来监控生产指标,如:产量、质量和效率随时间的变化,有助于优化生产流程和识别潜在问题;
  • 折线图的基本绘制流程:

    % plot函数基本语法:
    plot(X, Y);% plot函数设置线条样式;
    plot(X, Y, 'LineSpec');% 线条样式说明:
    % 'r、g、b':红色、绿色、蓝色;
    % 'k、c、m、y':黑色、青色、品红色、黄色;
    % '--':虚线;
    % ':':点线;
    % 'o':圆圈标记;
    % '+':加号标记;
    % 'x':叉号标记;
    % 's':方形标记;
    % 'd':菱形标记;
    % 'v':下三角标记;
    % '^':上三角标记;
    % '<':左尖角标记;
    % '>':右尖角标记;
    % 'p':五角星标记;
    % 'h':六边形标记;
    
    % ch08_03.m
    clear;
    clc;% 1.生成模拟数据;
    X1 = 1:15;
    Y1 = [1, 3, 4, 3, 6, 7, 5, 7, 6, 8, 11, 14, 13, 15, 16];X2 = 1:15;
    Y2 = [2, 5, 6, 4, 5, 9, 10, 7, 8, 9, 13, 7, 14, 11, 13];% 2.绘制折线图;
    plot(X1, Y1, 'b--o', 'LineWidth', 2, 'MarkerSize', 8, 'MarkerFaceColor', 'b');
    hold on;
    plot(X2, Y2, 'r:o', 'LineWidth', 2, 'MarkerSize', 8, 'MarkerFaceColor', 'r');% 3.标签、标题、图例;
    xlabel('X轴数据');
    ylabel('Y轴数据');
    title('折线图');
    legend('X1-Y1折线图', 'X2-Y2折线图');
    grid on;% 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_03.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    3

  • 高州市第一中学某同学 2024 2024 2024年语、数、英成绩排名变化折线图示例:

    % ch08_04.m
    clear;
    clc;% 1.生成模拟数据;
    month = 1:12;
    Chinese_grade_rank = [200, 180, 160, 150, 175, 155, 120, 100, 80, 95, 60, 10];
    math_grade_rank = [250, 190, 175, 120, 135, 105, 80, 60, 30, 25, 40, 20];
    English_grade_rank = [230, 150, 135, 100, 105, 95, 85, 70, 50, 35, 50, 15];% 2.绘制折线图;
    plot(month, Chinese_grade_rank, 'b--o', 'LineWidth', 2, 'MarkerSize', 8, 'MarkerFaceColor', 'b');
    hold on;
    plot(month, math_grade_rank, 'g:o', 'LineWidth', 2, 'MarkerSize', 8, 'MarkerFaceColor', 'g');
    hold on;
    plot(month, English_grade_rank, 'r:o', 'LineWidth', 2, 'MarkerSize', 8, 'MarkerFaceColor', 'r');% 3.标签、标题、图例;
    xlabel('月份/月');
    ylabel('各科成绩排名');
    title('高州市第一中学陈同学2024年各科成绩排名折线图');
    legend('语文成绩排名折线图', '数学成绩排名折线图', '英语成绩排名折线图');
    grid on;% 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_04.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    4

  • 婴儿出生数据变化折线图绘制:

    % ch08_05.m
    clear;
    clc;% 任务:绘制婴儿出生数据折线图;
    % 1.读取数据;
    data = readtable('ch08_05.csv');% 2.日期格式转换;
    date = string(data.year) + "-" + string(data.month) + "-" + string(data.day);
    date = datetime(date, 'InputFormat', 'yyyy-MM-dd');% 3.设置文本解释器;
    set(groot, 'defaultTextInterpreter', 'none');% 4.绘制折线图;
    figure('Position', [100 100 1000 600]);
    plot(date, data.births, 'r-', 'LineWidth', 1.5);% 5.标题、标签;
    xlabel('出生日期');
    ylabel('婴儿出生数量');
    title('婴儿出生数据折线图');
    grid on;
    set(gca, 'TickLabelInterpreter', 'none');
    datetick('x', 'yyyy-MM-dd', 'keeplimits');% 6.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_05.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    5

  • 分类折线图:分类折线图用于显示不同类别或组别之间的趋势或关系,通常用于比较不同类别之间的数据变化;

  • 分类折线图基本绘制示例:

    % ch08_06.m
    clear;
    clc;% 1.产生模拟数据;
    categories = {'class1', 'class2', 'class3', 'class4', 'class5', 'class6'};
    values1 = [1, 2, 4, 5, 6, 7];
    values2 = [4, 3, 2, 9, 7, 8];
    values3 = [2, 4, 5, 6, 9, 10];% 2.numel函数用于计算数组中的元素数量;
    figure;
    plot(1:numel(categories), values1, 'o-', 'LineWidth', 1.5, 'DisplayName', 'Series1');
    hold on;
    plot(1:numel(categories), values2, 's-', 'LineWidth', 1.5, 'DisplayName', 'Series2');
    hold on;
    plot(1:numel(categories), values3, 'd-', 'LineWidth', 1.5, 'DisplayName', 'Series3');% 3.设置X轴的刻度位置;
    set(gca, 'XTick', 1:numel(categories));% 4.将X轴刻度的标签设置为实际的分类名称;
    set(gca, 'XTickLabel', categories);% 5.标签、标题、图例;
    xlabel('不同类别');
    ylabel('不同类别的值');
    title('分类折线图基本示例');
    legend('Location', 'Best');grid on;
    hold off;% 6.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_06.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    6

  • 按性别对婴儿出生数据进行绘制折线图:

    % ch08_07.m
    clear;
    clc;% 1.读取数据;
    data = readtable('ch08_07.csv');
    date = datetime(data.year, data.month, data.day);figure('Position', [100, 100, 1000, 600]);% 2.使用不同颜色表示不同性别的折线;
    unique_genders = unique(data.gender);
    colors = {'b', 'r', 'g', 'm', 'c'};
    legend_labels = cell(length(unique_genders), 1);% 3.绘制分类折线图;
    hold on;
    for i = 1:length(unique_genders)gender = unique_genders{i};index = strcmp(data.gender, gender); subset = data(index, :);plot(date(index), subset.births, 'Color', colors{i});legend_labels{i} = gender;
    end
    hold off;% 4.标签、标题、图例、网格;
    xlabel('日期');
    ylabel('出生数量');
    title('婴儿出生数据分类折线图');
    legend(legend_labels, 'Location', 'Best');
    grid on;% 5.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_07.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    7

8.3 面积图
  • 面积图:用于显示数据序列随时间或有序类别的变化趋势,面积图常用于展示不同类别或组的数据在总体中的相对占比或堆积情况;

  • 面积图绘制基本语法:

    % 面积图绘制基本语法:
    area(x, y)% 参数说明:
    % 1.x:X轴上的数据点的位置,通常是一个数值数组或向量;
    % 2.y:Y轴上的数据点的位置,可以是一个矩阵,每一行代表一个不同的数据系列;% area函数常用参数或选项:
    % 'BaseValue':指定填充区域的基准值,即从该值开始填充区域;
    % 'FaceAlpha':设置填充区域的透明度,可以在0到1之间调整;
    % 'EdgeColor':指定填充区域的边缘颜色;
    % 'LineWidth':设置填充区域的边缘线宽度;
    
    % ch08_08.m
    clear;
    clc;% 1.生成模拟数据;
    x = 1:100;
    y1 = sin(x) + 1;
    y2 = cos(x) + 1;
    y3 = sin(x) + cos(x) + 2;
    y4 = sin(x) - cos(x) + 2;% 2.绘制面积图;
    figure;
    area(x, [y1; y2; y3; y4]','FaceAlpha', 0.8);% 3.标签、标题、图例;
    xlabel('X轴');ylabel('Y轴');
    title('面积图绘制示例');
    legend({'series1', 'series2', 'series3', 'series4'}, 'Location', 'Best');
    grid on;% 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_08.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    8

8.4 柱状图
  • 柱状图用于比较不同类别或组之间的两个变量,一个变量表示在 X {\rm X} X轴上的不同类别或组,另一个变量表示在 Y {\rm Y} Y轴上的值,柱状图常用于显示类别数据的比较;

  • 柱状图基本语法:

    % 柱状图基本语法:
    bar(Y);			% 绘制垂直柱状图,Y是一个包含数据的向量或矩阵;
    bar(X,Y);		% 绘制垂直柱状图,X是一个包含X轴刻度标签的单元格数组或字符串数组,Y是数据的向量或矩阵;% 参数说明:
    % Y:包含数据的向量或矩阵;
    % X:用于指定X轴的刻度标签,长度和Y相同;
    % width:用于设置柱形的宽度,默认宽度0.8;
    
    % ch08_09.m
    clear;
    clc;% 柱状图基本示例:广东海洋大学2015级机械各班人数柱状图;% 1.定义X轴、Y轴数据;
    className = {'机电1', '机电2', '机电3', '机电4', '机电5',...'机电6', '模具7', '模具8', '制造9', '制造10'};
    classNum = [36, 35, 37, 38, 40, 42, 45, 39, 42, 43];% 2.绘制柱状图,设置柱状图颜色、透明度;
    bar(1:numel(className), classNum, 'FaceColor', [0.9, 0.8, 0.5], 'FaceAlpha', 0.5);% 3.设置X轴刻度标签
    set(gca, 'XTick', 1:numel(className))
    set(gca, 'XTickLabel', className)% 4.标签、标题;
    xlabel('班级名称');
    ylabel('各班级人数');
    title('广东海洋大学2015级机械各班人数');% 5.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_09.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    9

  • 绘制不同汽车型号的燃油效率柱状图:

    % ch08_10.m
    clear;
    clc;% 1.加载"carsmall"数据集
    load carsmall;% 2.选择要绘制柱状图的数据列,例如 MPG(每加仑英里数)
    mpgData = MPG;% 3.创建一个新的图形窗口并设置其尺寸
    figure('Position', [100, 100, 1200, 400]); % 调整图表的宽度为1200,高度为400(可以根据需要调整)% 4.创建柱状图
    bar(mpgData);% 5.添加标题和轴标签
    xlabel('汽车索引');
    ylabel('每加仑英里数 (MPG)');
    title('Carsmall数据集 MPG 数据');% 6.获取车辆名称(X轴标签)
    carNames = cellstr(Model);% 7.设置X轴标签的间隔,例如每隔2个车辆显示一个标签
    xTickInterval = 2;% 8.显示部分标签
    xTickPositions = 1:xTickInterval:length(carNames);
    xTickLabels = carNames(xTickPositions);% 9.在图上设置X轴标签位置和标签值
    set(gca, 'XTick', xTickPositions);
    set(gca, 'XTickLabel', xTickLabels);% 10.使X轴标签倾斜以提高可读性
    xtickangle(45);
    grid on;% 11.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_10.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    10

8.5 条形图
  • 条形图通常用于比较不同类别或组之间的数据值,由一组垂直或水平的条形组成,每个条形的高度(或长度)表示相应类别或组的数据值;

  • 条形图和柱状图区别:

    • 条形图一般是水平的,条形从左到右,每个条形的长度表示相应类别或组的数据值;
    • 柱状图一般是垂直的,柱状从下到上,每个柱子的高度表示相应类别或组的数据值;
    • 条形图常用于比较不同类别或组间的数据,特别是当类别名称较长或需要显示在图形的底部时;
    • 柱状图常用于比较不同类别或组的数据,通常在类别名称较短或可以垂直显示时;
  • 条形图绘制基本示例:

    % ch08_11.m
    clear;
    clc;% 1.创建数据;
    data = [13 20 18 15 16 12];% 2.绘制条形图;
    figure;
    barh(data, 'FaceColor', 'b');% 3.标签、标题;
    xlabel('数据值');
    ylabel('类别');
    title('条形图绘制基本示例');% 4.设置类别;
    set(gca, 'YTickLabel', {'类1', '类2', '类3', '类4', '类5', '类6'});% 5.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_11.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    11

  • 广东海洋大学 2015 2015 2015级机械专业高等数学各分数段人数条形图:

    % ch08_12.m
    clear;
    clc;% 1.生成各分数段人数;
    scoreData = [25 30 60 65 80 75 40 30 20];% 2.绘制条形图;
    figure;
    barh(scoreData, 'FaceColor', 'c');% 3.标签、标题;
    xlabel('各分数段值');
    ylabel('各分数段区间');
    title('广东海洋大学2015级机械专业高等数学各分数段人数条形图');% 4.设置类别;
    set(gca, 'YTickLabel', {'95-100', '90-95', '85-90', '80-85', '75-80', '70-75', '65-70', '60-65', '0-60'});% 5.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_12.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    12

8.6 热力图
  • 热力图用于可视化两个分类变量之间的关系,通过颜色编码来表示不同组合的频率或值,可以帮助识别变量之间的相关性和模式;

  • 热力图在科技领域中常见的应用场景:

    • 温度分布:气象学中,热力图用于显示地理区域的温度分布情况,每个单元格表示一个地理位置,颜色表示温度;
    • 基因表达分析:生物学中,热力图用于可视化基因表达数据,行表示基因,列表示样本,单元格的颜色表示基因在不同样本中的表达水平;
    • 金融分析:金融领域中,热力图用于可视化不同股票或资产之间的相关性,每个单元格可以表示两种资产之间的相关性,颜色深浅表示相关性的强度;
    • 图像处理:计算机视觉中,热力图用于表示图像中不同区域的像素强度,有助于完成图像分割、特征提取等任务;
  • 热力图绘制基本示例:

    % ch08_13.m
    clear;
    clc;% 1.生成随机模拟数据;
    data = rand(10, 10);% 2.绘制热力图;
    heatmap(data);% 3.设置颜色映射;
    colormap('parula');% 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_13.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    13

  • 热力图常用的颜色映射:

    • J e t {\rm Jet} Jet J e t {\rm Jet} Jet颜色映射使用明亮的彩虹色彩,从蓝色到红色;
    • H o t {\rm Hot} Hot H o t {\rm Hot} Hot颜色映射使用温度感应的颜色,从黑色到红色到黄色,适用于表示热度或温度变化;
    • C o o l {\rm Cool} Cool C o o l {\rm Cool} Cool颜色映射使用冷色调,从蓝色到紫色,常用于表示冷热程度的变化;
    • S p r i n g {\rm Spring} Spring S p r i n g {\rm Spring} Spring颜色映射使用春季感觉的颜色,从品红色到黄色;
    • C o p p e r {\rm Copper} Copper C o p p e r {\rm Copper} Copper颜色映射用于表示铜金属的颜色;
    • G r a y {\rm Gray} Gray G r a y {\rm Gray} Gray颜色映射使用不同灰度级别的颜色;
    • B o n e {\rm Bone} Bone B o n e {\rm Bone} Bone颜色映射使用骨骼颜色,从黑色到白色;
    • P i n k {\rm Pink} Pink P i n k {\rm Pink} Pink颜色映射使用粉红色系的颜色;
8.7 针状图
  • 针状图常用于可视化离散数据或序列的变化趋势,强调离散数据点的振幅或值,并在图形上以垂直线段的形式表示这些值;

  • 针状图常见应用场景:

    • 信号处理:信号处理中,针状图常用于显示数字信号的样本或脉冲序列,帮助分析信号的振幅、频谱和时域特性;
    • 数学教育:教育领域中,针状图用于教授数学中的点、向量、序列或分布概念,可用于可视化离散数据集;
    • 实验数据分析:科学实验中采集到的数据点,如:温度测量、压力测量等,帮助分析实验数据的趋势;
    • 时间序列分析:针状图适用于表示时间序列数据,特别是在离散时间点上的观测值,如:气象数据、股票价格等;
    • 数字滤波器分析:针状图可用于表示滤波器的冲激响应,显示滤波器如何影响信号;
    • 峰值检测:信号处理中,针状图可用于检测信号中的峰值或特定事件;
  • 针状图绘制基本示例:

    % ch08_14.m
    clear;
    clc;% 1.生成随机整数数据;
    x = 1:100;
    y = randi([1, 100], 1, 100);% 2.创建针状图;
    stem(x, y, 'b', 'filled');% 3.标签、标题;
    xlabel('X轴(数据点)');
    ylabel('Y轴(值)');
    title('针状图基本示例');% 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_14.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    14

8.8 阶梯图
  • 阶梯图常用于表示离散数据的变化趋势,阶梯图的特点是在数据点之间使用水平或垂直的线段来显示数据的变化;

  • 阶梯图常见应用场景:

    • 时间序列数据:用于可视化时间序列数据的变化,如:股票价格、气温、电力使用情况等,每个数据点代表一个特定时间点的观测值;
    • 累积数据:用于表示累积数据的变化,如:累积销售额或总体积,每个数据点代表一个累积事件后的观测值;
    • 分类数据:用于表示不同类别或分组之间的变化,如:市场份额、不同地区的销售额等,每个数据点代表一个不同的类别;
    • 财务数据:用于表示各种会计账户的变化,如:资产、负债和所有者权益;
  • 阶梯图基本绘制示例:

    % ch08_15.m
    clear;
    clc;% 1.创建时间、温度模拟数据;
    x = 1:12;
    y = [20, 22, 23, 23, 23.5, 21, 22, 24, 25, 28, 30, 35];% 2.创建基本阶梯图;
    stairs(x, y, 'b', 'LineWidth', 1.5);% 3.标签、标题;
    xlabel('时间');
    ylabel('温度');
    title('2024-08-15凌晨0点到中午12点每小时温度变化');% 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch08_15.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    15

相关文章:

MATLAB绘图基础8:双变量图形绘制

参考书&#xff1a;《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。 8.双变量图形绘制 8.1 散点图 散点图用于显示两个变量间的关系&#xff0c;每个数据点在图上表示为一个点&#xff0c;一个变量在 X {\rm X} X轴&#xff0c;一个变量在 Y {\rm Y} Y轴&#…...

Appium高级话题:混合应用与原生应用测试策略

Appium高级话题&#xff1a;混合应用与原生应用测试策略 在移动应用开发领域&#xff0c;混合应用与原生应用各有千秋&#xff0c;但它们的测试策略却大相径庭。本文旨在深入探讨这两种应用类型的测试挑战&#xff0c;并介绍如何利用自动化测试软件ItBuilder高效解决这些问题&…...

windows源码安装protobuf,opencv,ncnn

安装笔记 cmake 在windows可以使用-G"MinGW Makefiles" 搭配make使用&#xff0c;install出来的lib文件时.a结尾的&#xff0c;适合linux下面使用。所以在windows上若无需求使用-G"NMake Makefiles" 搭配nmake。 但是windows上使用-G"NMake Makefil…...

MicroPython 怎么搭建工程代码

在MicroPython中搭建工程代码可以遵循以下步骤&#xff1a; 1. 准备工作 安装MicroPython固件&#xff1a;确保已经将MicroPython烧录到ESP32开发板中。准备开发环境&#xff1a; 可以使用文本编辑器&#xff08;如VS Code、Thonny、uPyCraft等&#xff09;来编写代码。 2.…...

Android studio安装问题及解决方案

Android studio安装问题及解决方案 gradle已经安装好了&#xff0c;但是每次就是找不到gradle的位置&#xff0c;每次要重新下载&#xff0c;很慢&#xff0c;每次都不成功 我尝试用安装android studio时自带的卸载程序&#xff0c;卸载android studio&#xff0c;然后重新下…...

前端面试题(二)

6. 深入 JavaScript this 关键字的指向是什么&#xff1f; this 的指向是在函数执行时决定的。默认情况下&#xff0c;非严格模式下 this 指向全局对象&#xff08;浏览器中为 window&#xff09;&#xff0c;严格模式下 this 为 undefined。在对象方法中&#xff0c;this 通常…...

【C++】stack和queue的使用及模拟实现

stack就是栈的意思&#xff0c;这个结构遵循后进先出(LIFO)的原则&#xff0c;可以将栈想象为一个子弹夹&#xff0c;先进去的子弹后出来。 queue就是队列的意思&#xff0c;这个结构遵循先进先出(FIFO)的原则&#xff0c;可以将对列想象成我们排队买饭的场景&#xff0c;先排…...

MongoDB解说

MongoDB 是一个流行的开源 NoSQL 数据库&#xff0c;它使用了一种被称为文档存储的数据库模型。 与传统的关系型数据库管理系统&#xff08;RDBMS&#xff09;不同&#xff0c;MongoDB 不使用表格来存储数据&#xff0c;而是使用了一种更为灵活的格式——JSON 样式的文档。 这…...

问:JAVA中唤醒阻塞的线程有哪些?

在Java中&#xff0c;唤醒阻塞线程的方法有多种&#xff0c;以下是常见的线程唤醒方法。 唤醒方法 使用notify()和notifyAll()方法 synchronized (obj) {obj.notify(); // 唤醒单个等待线程// obj.notifyAll(); // 唤醒所有等待线程 }使用interrupt()方法 Thread thread n…...

Github Webhook触发Jenkins自动构建

1.功能说明 Github Webhook可以触发Jenkins自动构建&#xff0c;通过配置Github Webhook&#xff0c;每次代码变更之后&#xff08;例如push操作&#xff09;&#xff0c;Webhook会自动通知Jenkins服务器&#xff0c;Jenkins会自动执行预定义的构建任务&#xff08;如Jenkins …...

ESP32-WROOM-32 [创建AP站点-客户端-TCP透传]

简介 基于ESP32-WROOM-32 开篇(刚买)&#xff0c; 本篇讲的是基于固件 ESP32-WROOM-32-AT-V3.4.0.0&#xff08;内含用户指南, 有AT指令说明&#xff09;的TCP透传设置与使用 设备连接 TTL转USB线, 接ESP32 板 的 GND&#xff0c;RX2&#xff0c; TX2 指令介绍 注意,下面指…...

新闻文本分类识别系统Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+TensorFlow+Django网页界面

一、介绍 文本分类识别系统。本系统使用Python作为主要开发语言&#xff0c;首先收集了10种中文文本数据集&#xff08;“体育类”, “财经类”, “房产类”, “家居类”, “教育类”, “科技类”, “时尚类”, “时政类”, “游戏类”, “娱乐类”&#xff09;&#xff0c;然…...

Java使用Map数据结构配合函数式接口存储方法引用

Java使用Map数据结构配合函数式接口存储方法引用 背景 需求中存在这样一直情况 一个国家下面有很多的州 每个州对应的计算日期方法是不同的 这个时候 就面临 可能会有很多if else 为了后期维护尽量还是不想采用这个方式&#xff0c;那么就可以使用策略模式 但是 使用策略带来的…...

LeetCode:2207. 字符串中最多数目的子序列(Java)

目录 2207. 字符串中最多数目的子序列 题目描述&#xff1a; 实现代码与解析&#xff1a; 遍历&#xff1a; 原理思路&#xff1a; 2207. 字符串中最多数目的子序列 题目描述&#xff1a; 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 p…...

win10开机自启动方案总汇

win10开机自启动方案总汇 一、开始文件目录添加二、添加注册表启动程序三、服务启动3.1. 将程序注册为服务使用命令行创建服务设置服务启动类型启动服务 3.2. 使用 Windows 服务管理器配置服务3.3. 删除服务 四、定时任务或程序4.1 设置程序自启动&#xff08;使用任务计划程序…...

【自动驾驶】基于车辆几何模型的横向控制算法 | Stanley 算法详解与编程实现

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…...

微服务--初识MQ

在微服务架构中&#xff0c;MQ&#xff08;Message Queue&#xff0c;消息队列&#xff09;作为一种重要的通信机制&#xff0c;扮演着至关重要的角色。 MQ&#xff0c;即消息队列&#xff0c;是一种在不同服务或系统之间传递消息的中间件。它允许消息的发送者&#xff08;生产…...

车辆识别数据集,图片数量20500,模型已训练200轮

车辆识别数据集&#xff08;Vehicle Recognition Dataset, VDRD&#xff09; 摘要 VDRD 是一个专为车辆识别设计的大规模数据集&#xff0c;它包含了20500张不同类型的汽车、货车、公交车以及其他类型车辆的图像。数据集提供了四种车辆类别&#xff1a;汽车、货车、其他车辆和…...

MES系统如何提升制造企业的运营效率和灵活性

参考拓展&#xff1a;苏州稳联-西门子MES系统-赋能智能制造的核心引擎 制造执行系统(MES)在提升制造企业运营效率和灵活性方面发挥着关键作用。 一、MES系统的基本概念和功能 MES系统是连接企业管理层与生产现场的重要桥梁。它主要负责生产调度、资源管理、质量控制等多个方…...

Nexpose 6.6.270 发布下载,新增功能概览

Nexpose 6.6.270 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, release Sep 18, 2024 请访问原文链接&#xff1a;https://sysin.org/blog/nexpose-6/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.or…...

【数据库】sqlite

文章目录 1. 基本概述2. 主要特点3. 应用场景4. 优缺点5. 基本使用示例6. 在编程语言中的使用连接到 SQLite 数据库&#xff08;如果文件不存在会自动创建&#xff09;创建表插入数据提交事务查询数据关闭连接 7. 总结 SQLite 是一个轻量级的关系型数据库管理系统&#xff08;R…...

详解 C++中的模板

目录 前言 一、函数模板 1.定义 2.函数模板的实现 3.模板函数的实例化 4.模板参数的省略 1.函数模板的实参推导 2.类模板的实参推导 3.默认模板参数 4.特殊情况:无法推导的模板 5.推导失败的情况 二、类模板 1.概念和定义 2.类模板定义 3.类模板的使用 4.类模板…...

基于DAMODEL——Faster-RCNN 训练与测试指南

Faster-RCNN 训练与测试指南 前言 今天我们要来实现一个经典的目标检测模型&#xff1a;Faster-Rcnn。我们使用DAMODEL云平台来实现&#xff0c;这是个很强大的云端平台&#xff0c;功能众多&#xff0c;你可以投你所好去进行你想做的事情。 1. 环境与工具准备 1.1 远程连接…...

考研数据结构——C语言实现冒泡排序

冒泡排序是一种简单的排序算法&#xff0c;它重复地遍历要排序的列表&#xff0c;比较每对相邻元素&#xff0c;并在顺序错误的情况下交换它们。这个过程重复进行&#xff0c;直到没有需要交换的元素&#xff0c;这意味着列表已经排序完成。冒泡排序的名字来源于较小的元素会逐…...

labview更换操作系统后打开原VI闪退

labview更换操作系统后打开原VI闪退 问题描述&#xff1a; Windows11由家庭版更换为专业版后&#xff0c;重新安装labview2021&#xff0c;打开原来的项目&#xff0c;项目管理器可以正常打开&#xff0c;但是打开VI却闪退&#xff0c;并报错如下 出现这种原因主要是labview在…...

什么是CAPTCHA?有什么用途?

一、CAPTCHA 的工作原理 CAPTCHA的核心目的是通过呈现人类可以轻松理解但计算机程序难以解决的任务&#xff0c;来阻止恶意的自动化工具。传统的CAPTCHA通过展示扭曲或模糊的文字、图片或者点击操作等&#xff0c;要求用户完成验证任务。这些任务通常需要视觉、听觉或简单的逻辑…...

在虚幻引擎中创建毛发/头发

在虚幻引擎中创建毛发/头发 , 首先开启两个插件 Groom 和 Alembic Groom Importer 打开蒙皮缓存 导出人物模型 将人物导入Blender , 选择需要种植头发的点 指定并选择 点击毛发 这里变成爆炸头了 , 把数量和长度调一下 切换到梳子模式 调整发型 导出为abc , 文件路径不…...

PHP API 框架:构建高效API的利器【电商API接口】

在当今快速发展的互联网时代&#xff0c;API&#xff08;应用程序编程接口&#xff09;已成为连接不同应用程序和服务的关键。PHP&#xff0c;作为一种流行的服务器端脚本语言&#xff0c;提供了多种强大的框架来简化API的开发。本文将介绍PHP API框架的重要性&#xff0c;以及…...

transformer模型写诗词

加入会员社群&#xff0c;免费获取本项目数据集和代码&#xff1a;点击进入>> 1. 项目简介 该项目是基于A035-transformer模型的诗词生成系统&#xff0c;旨在通过深度学习技术实现古诗词的自动化创作。项目的背景源自当前自然语言处理领域的迅速发展&#xff0c;特别是…...

[大语言模型-工程实践] 手把手教你-基于Ollama搭建本地个人智能AI助理

[大语言模型-工程实践] 手把手教你-基于Ollama搭建本地个人智能AI助理 Note: 草稿优化中&#xff0c;持续更新&#xff0c;相关代码将统一提供出来~ 1. Ollama简介 Ollama 是一个用于在本地环境中运行和定制大型语言模型的工具。它提供了一个简单而高效的接口&#xff0c;用于…...