教你用MATLAB制作一款最有中秋特色的饼状图——月饼状图

2024-01-08 13:38

本文主要是介绍教你用MATLAB制作一款最有中秋特色的饼状图——月饼状图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0效果:
在这里插入图片描述
在这里插入图片描述

1素材说明:
我们需要在m文件路径下建立名为pic的文件夹,并且在里面放入下面这些图:
在这里插入图片描述
这些月饼图的制作方法参见上一篇:
中秋节快到了,一起用MATLAB绘制一款2.5D月饼叭

2完整代码:

function mmOOnnCCaaKKeestrSet={'蛋黄莲蓉',40/100;'抹茶',20/100;'紫薯',15/100;'鲜肉',15/100;'辣椒炒肉',10/100};probVal=cell2mat(strSet(:,2));
% 将概率密度函数转换为概率分布函数
for i=2:length(probVal)probVal(i)=probVal(i)+probVal(i-1);
end
probVal=[0,probVal'];path='.\pic\';%文件夹名称
files=dir(fullfile(path,'*.png')); 
picNum=size(files,1);%遍历路径下每一幅图像
for i=1:picNumfileName=strcat(path,files(i).name); [img,~,alp]=imread(fileName);imgSet{i}=img;alpSet{i}=alp;
endfig=figure('units','pixels',...'position',[20 60 560 560],...'Color',[1 1 1]);
ax=axes('Units','pixels',...'parent',fig,...  'Color',[1 1 1],...'Position',[0 0 560,560],...'XLim',[0,100],...'YLim',[0,100],...'XColor','none',...'YColor','none');
hold(ax,'on')
ax.YDir='reverse';
ax.XDir='normal';[nrow,ncol,~]=size(imgSet{1});
[XMesh,YMesh]=meshgrid((1:ncol)-(1+ncol)/2,(1:nrow)-(1+nrow)/2);
%disMesh=sqrt(XMesh.^2+YMesh.^2);
thetaMesh=atan2(YMesh,XMesh)+pi;
thetaMesh=thetaMesh(:,end:-1:1);for i=1:length(probVal)-1boolSet=thetaMesh;boolSet=boolSet>probVal(i)*2*pi&boolSet<probVal(i+1)*2*pi;boolSet=alpSet{i}==255&boolSet;theta=(probVal(i)+probVal(i+1))*pi;image(ax,[0,100]+cos(theta).*2,-5+[0,100]-sin(theta).*2,imgSet{i},'alphaData',boolSet,'Interpolation','bilinear');text(ax,50+cos(theta).*42,50-sin(theta).*44,strSet{i,1},'FontSize',20,'Color',[0.3,0.4,0.2],...'HorizontalAlignment','center','FontWeight','bold','BackgroundColor',[1,1,1,.8],...'EdgeColor',[0.4,0.3,0.2,0.8],'LineWidth',1)
end
end

原理也很简单,就是根据strSet里的数据计算出各个部分夹角,再根据夹角计算bool值作为alphaData的参数即可,文件和程序完整连接如下:

链接:https://pan.baidu.com/s/1UmjPBdowoX6BRIhphoIlRQ
提取码: r5h5

这篇关于教你用MATLAB制作一款最有中秋特色的饼状图——月饼状图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/583627

相关文章

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬

libsvm在matlab中的使用方法

原文地址:libsvm在matlab中的使用方法 作者: lwenqu_8lbsk 前段时间,gyp326曾在论坛里问libsvm如何在matlab中使用,我还奇怪,认为libsvm是C的程序,应该不能。没想到今天又有人问道,难道matlab真的能运行libsvm。我到官方网站看了下,原来,真的提供了matlab的使用接口。 接口下载在: http://www.csie.ntu.edu.

OpenStack离线Train版安装系列—0制作yum源

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack镜像制作系列5—Linux镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

OpenStack镜像制作系列4—Windows Server2019镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录  CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系

OpenStack镜像制作系列2—Windows7镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系列