MATLAB常用画图函数

article/2025/9/12 19:22:44

图形化

    • 用plot举例
    • 直方图histogram
    • 条形图bar和barh
    • 饼状图pie
    • 极坐标polarplot和polarscatter
    • 三维图像
      • plot3
      • surfc
      • meshc
      • contour3
      • contour
      • contourf

用plot举例

x1 = linspace(0,5);
y1 = sin(4*x);%	在一张画布上生成特定个数的子图像
%	第一个参数横向几个子图
%	第二个参数纵向几个子图
%	第三个参数画布的第几个子图
%	返回当前图对象
ax1=subplot(1,1,1)%	使多个图像在同一张图片上,如果没有,后来的图像会取代前面图片
hold on%	 x:横轴,y:纵坐标值
plot(x1,y1,...'r-o',...			%是线条颜色和类型及标签类别其顺序自由'LineWidth',2,...   %线条宽度'MarkerSize',2,...  %标签大小'MarkerEdgeColor','b')%标签颜色plot(x1+1,y1,':b*');
hold off%	给指定图添加图例,ax1可省略,表示给当前对象添加图例
legend(ax1,{'redtest','bluetest'},...	% 图例名称'FontSize',4,...		 	% 图例大小'Location','northwest',... % 图例位置'NumColumns',1)    		% 图例列数%*************XY轴相关设置***********             
%设置标题
title('plottest')%当前子图xy轴标签
xlabel('x1');
ylabel('y1')% 指定当前图显示的刻度
xticks([0 1 2 3 4 5 6])
yticks([-2 -1 0 1 2])%*************标签设置*************
ax = gca;			 	 % 获取标签对象
ax.FontSize = 10; 		 % 指定标签大小
ax.TickDir = 'out'; 	 % 定位线在外侧,一般默认
ax.TickLength = [0.02 0.02];	%定位线长度,一般默认
ax.YLim = [-2 2];		%指定Y轴显示数据范围
ax.XLim = [-2 7]		%指定X轴显示数据范围%*************设置内部文本************str='$$ \int_{0}^{2} x^2sin(x)e^3 dx $$';	%示例并不与图像对应%	添加表达式
%	前两个参数时文本左端起始位置
%	str文本内容,后两个参数为特定显示格式与str$$格式对应
text(-1.5,-1.2,str,'Interpreter','latex');%	添加箭头,X后是起始和终止横坐标,Y是起始和终止纵坐标
annotation('textarrow','X',[0.25,0.3],'Y',[0.3,0.35]);%***************底板设置(背景)**********
fig = gcf; 
fig.Color = [0 0.5 0.5];%底版颜色(相对的RGB)
grid on					% 开启粗网格
grid minor				%开启细网格
%grid off      			关闭当前图的网格% **************设置图片型状************
%axis norma		 一般使用默认
%axis square
%axis equal********************保存***************
saveas(gcf,'test','png')%第一个参数保存图片的底板,第二个:文件名,第三个:文件后缀

在这里插入图片描述

XY轴,底板,文本,标签均和该例子相似,不在赘述

直方图histogram

y=randn(1,1000);
subplot(1,2,1)
%	 直方图,
%	第一个参数:数据
%	第二个参数,分成几条,
%	注意第二个参数应该最好是数据最大值减最小值的整数倍,否则有偏差
h=histogram(y,30);% 'BinWidth',num1,...		每条宽度%'BinLimits',[start,end]...	显示范围%'FaceColor','auto',		内部颜色% 'EdgeColor', [0 0 0] 		边缘颜色%这些参数均可通过h对象调用disp(h.Values)		%每一条的样本数量
disp(h.NumBins)		%条的个数
disp(h.BinEdges)	%每一条的边缘
% h.NumBins=100		也可以通过这种调用赋值的形式改变其中的参数
% h.FaceColor='r'	改变颜色subplot(1,2,2)
%直方图可生成概率密度函数的估计值
h=histogram(y,30,'Normalization','pdf');
x=-2.5:0.1:2.5
mu = 0;
sigma = 1;
f = exp(-(x-mu).^2./(2*sigma^2))./(sigma*sqrt(2*pi));
hold on
plot(x,f,'LineWidth',1.5)savefig('histogram.fig');
s = openfig('histogram.fig');
h = findobj(h, 'type', 'histogram')
%这时的h就和原始histogram创建时返回相同对象

在这里插入图片描述

条形图bar和barh

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
subplot(2,2,1)
b=bar(y,'g','LineWidth',1.5)	%指定颜色
b.FaceColor = 'flat';			%将该参数设置为flat就可以调用CData,使之运行
b.CData(2,:) = [.5 0 .5];		%将第二条所有高度均设置为指定颜色subplot(2,2,2)
% 若是多维矩阵,则每一个行向量就是一组
% 每一纵列就是一组相同性质的数据
y=[1 2 3 4 ;4 3 2 1;6 4 3 2 ]
bar(y)subplot(2,2,3)
%	stacked为矩阵中的每一行显示一个条形。每个条形的高度是行中各元素之和。
bar(y,'stacked')subplot(2,2,4)
% 三维条形图
bar3(y)

在这里插入图片描述
barh:

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
subplot(1,1,1)
barh(y)

在这里插入图片描述

饼状图pie

subplot(2,1,1)
X = [1 3 0.5 2.5 2];
% 	注意是{},区别于explode
labels = {'aa','bb','cc','dd','ee'};
explode = [1 1 0 0 0];		%爆炸,是否出饼图,只有1和0
pie(X,explode,labels)		%有标签时,百分比自动缺失,后解决该问题subplot(2,1,2)
X = categorical({'North','South','North','East','South','West'});
explode = {'North','South'};
pie(X,explode)% 自动计算百分比

在这里插入图片描述
pie添加自定义文本和百分比

subplot(1,1,1)
X = [1 3 0.5 2.5 2];
h=pie(X);
hText = findobj(h,'Type','text');
txt = {'aaaaa ';'bbbbb ';'ccccc ';'ddddd';'eeeee'};
percentValues = get(hText,'String');
combinedtxt = strcat(txt,percentValues); %百分比和名称结合oldExtents_cell = get(hText,'Extent');	
oldExtents = cell2mat(oldExtents_cell);	% 获取饼图文本对象%填充
hText(1).String = combinedtxt(1);
hText(2).String = combinedtxt(2);
hText(3).String = combinedtxt(3);
hText(4).String = combinedtxt(4);
hText(5).String = combinedtxt(5);

在这里插入图片描述

极坐标polarplot和polarscatter

figure
ax1 = subplot(2,1,1,polaraxes);%注意创建子图时最后有一个参数
theta = linspace(0,2*pi,50);
rho = sin(theta).*cos(theta);
polarplot(ax1,theta,rho)		% theta为角度,rho为长度ax2 = subplot(2,1,2,polaraxes);
polarscatter(theta,rho)

在这里插入图片描述

三维图像

三维图像的标签设置以及其他参数和二维基本相同,只是把xy的位置换成z

plot3

t = 0:pi/50:10*pi;
st = sin(t);
ct = cos(t);
plot(st,ct,t)

在这里插入图片描述

surfc

x = -2:0.25:2;
[X,Y] = meshgrid(x,x);  %创建-2到2的格子,返回X为格子中所有点的横坐标,返回Y为格子中所有点的纵坐标   % 计算高度
Z = X.*exp(-X.^2-Y.^2);
surfc(X,Y,Z)			% 通过XY对应的横纵坐标以及Z值,确定点的高度

图中的交叉点就是XY对应的坐标,surfc会根据点的Z值定周围方格的颜色,每一份方格颜色是唯一的。
在这里插入图片描述
三维结果图:

在这里插入图片描述

meshc

x = -2:0.25:2;
[X,Y] = meshgrid(x,x);
Z = X.*exp(-X.^2-Y.^2);
meshc(X,Y,Z)

没有填充颜色的surfc函数
在这里插入图片描述

contour3

x = -2:0.25:2;
[X,Y] = meshgrid(x,x);
Z = X.*exp(-X.^2-Y.^2);
hold on
contour3(X,Y,Z,30)		% 第四个参数是线条数

图中每一条都是一个封闭图线:
在这里插入图片描述

contour

二维图展示三维效果

x = -2:0.25:2;
[X,Y] = meshgrid(x,x);
Z = X.*exp(-X.^2-Y.^2);
contour(X,Y,Z)

在这里插入图片描述

contourf

x = -2:0.25:2;
[X,Y] = meshgrid(x,x);
Z = X.*exp(-X.^2-Y.^2);
contourf(X,Y,Z)		% 有填充的contour

在这里插入图片描述


http://chatgpt.dhexx.cn/article/VgUxBmSA.shtml

相关文章

What is Drilldown configuration

Created by Wang, Jerry on Aug 25, 2015

Echarts实现柱状图下钻功能

需求描述 在一个类别柱状图上,点击柱状图上的某一类后可显示该类具体的数据。 钻取的定义 钻取是改变维的层次,变换分析的粒度。包括向上钻取(drill up)和向下钻取(drill down).drill up 是在某一维上将低层次的细节数据概括到高层次的汇总数据&#…

Highcharts实现下钻多柱series

钻取功能需要引入或注册额外的功能模块&#xff0c;链接是官方模块的引入文档。 前言 Highcharts实现下钻动态添加多个series 实现 <template><divref"chartRef"style"height:300px;width:800px"></div> </template><script…

手把手教你实现echarts3的折线图下钻drilldown功能系列篇二

开场白 好了, 上一篇介绍了关于echarts下钻&#xff08;drilldown&#xff09;的一些信息&#xff0c;通过上一篇文章我们知道echarts折线图&#xff0c;柱状图没有支持下钻&#xff08;drilldown&#xff09;功能的api&#xff0c;那就需要我们自己动手&#xff0c;丰衣足食了…

Kibana:在 Kibana 中对数据进行深入分析 (drilldown)

我们可以在 Kibana 中对数据进行分析&#xff0c;并生产表格等。我们是否可以为我们展示的数据生产超链接呢&#xff1f;比如&#xff1a; 在我们上面的表格中在左边的表格中&#xff0c;上面所示的 US 是一个超链接。我们点击这个超链接后&#xff0c;它会帮我们启动一个搜索。…

Kibana:使用 drilldown 从一个仪表板切换到另外一个仪表板

Drilldowns&#xff08;也称为自定义操作&#xff09;使你可以配置工作流以对数据进行分析和故障排除。 使用 drilldowms&#xff0c;你可以从一个仪表板导航到另一个仪表板&#xff0c;并随身携带当前时间范围&#xff0c;过滤器和其他参数&#xff0c;因此上下文保持不变。 你…

Kibana:Drilldown 中的 URL 模板

警告&#xff1a;此功能处于 beta 版本&#xff0c;可能会更改。 该设计和代码不如正式的 GA 功能成熟&#xff0c;并且按原样提供&#xff0c;不提供任何担保。 Beta 功能不受官方 GA 功能的支持 SLA 约束。此功能在 7.11 及以上版本提供。 URL 模板 输入使用 Handlebars&…

highchart图表drilldown钻取功能及event点击事件添加(1)

最近做的一个需求是这样的&#xff0c;大类图表柱状图列出来&#xff0c;点击柱状图列出对应子类柱状图&#xff0c;后点击子类的柱状图后跳转到一个新页面列出两个饼状图 我是这么实现的&#xff1a;&#xff08;部分代码demo,饼状图页面为detailChart.html,随便找了个例子顶…

Kibana:为 table 创建链接 drilldown - 7.11 版本

在之前的文章 “Kibana&#xff1a;为 Dashboard 创建链接 drilldown - 7.11 版本”&#xff0c;我为大家介绍了如何使用带参数的 URL drilldown。在很多的时候&#xff0c;在 dashboard 中&#xff0c;有 table 的可视化。那么我们将如何为 table 中的项提供可视化呢&#xf…

下钻图生成 highcharts-column-drilldown

下钻图生成 highcharts-column-drilldown 功能 使用python生成下钻图 来源&#xff1a;https://www.highcharts.com.cn/demo/highcharts/column-drilldown 下钻层数由具体的输入决定&#xff0c;理论上可以无限下钻&#xff0c;不过下钻的层数越深也就意味着需要计算的时间越…

Kibana:为 Dashboard 创建链接 drilldown - 7.11 版本

我在之前的文章 “Kibana&#xff1a;使用 drilldown 从一个仪表板切换到另外一个仪表板” 展示了如何在 dashboard 里使用 drilldown 从一个仪表板到另外一个仪表板的跳转。在今天的文章中&#xff0c;我将介绍如何创建一个链接 drilldown 从而实现从 dashboard 到一个链接的跳…

终极玩转Power BI中Drill-down Choropleth 地图

故事背景 最近有个Power BI的项目有个功能点&#xff0c;颇令我头痛&#xff0c;说来话长&#xff0c;先捋一下需求&#xff1a; 1&#xff0c; 中国地图&#xff08;包含港澳台&#xff09; 2&#xff0c; 可以下钻到省市级&#xff0c;而且是中国->Region->Area->城…

C语言计算阶乘及阶乘的和

计算 n的阶乘。要实现这个阶乘的值并不难&#xff0c;只需要运用到for循环依次相乘即可&#xff0c;但要注意for循环i的初始值一定是从1开始到n结束。 #include<stdio.h> int main() {int i,n;int ret 1;//用于存放阶乘的值scanf("%d", &n);for (i 1; i…

c语言求阶乘的两种算法(递归和循环)

循环法 循环法还是比较简单的&#xff0c;很常规&#xff0c;就先输入你要求的阶乘n&#xff0c;然后一直自减 #include <stdio.h> main() {long n,sum1;//10 以上的阶乘就比较大了&#xff0c;所以用longint i;printf("请输入你要求的阶乘呀&#xff1a;");…

【C语言】求一个数的阶乘

#include <stdio.h> //包含标准库的信息int main(void) //每个程序都从main函数的起点开始执行 { //函数开始int p 1;int n;printf("请输入所求阶乘&#xff1a;\n");scanf("%d",&…

C语言求1到20的阶乘之和

#include<stdio.h>int main() {int i, j;long long sum 0, jieCheng;for (i 1; i < 20; i){jieCheng 1;for (j 1; j < i; j){jieCheng * j;}sum jieCheng;}printf("%lld", sum);return 0; }

C语言基础 阶乘:输入一个数,输出它的阶乘。

升级打怪 C语言基础第一题 题目&#xff1a; 输入一个数字&#xff0c;输出它的阶乘。 求阶乘有很多种方法&#xff0c;我下面来例举一种使用while语句的方法&#xff01; 1.首先定义变量&#xff1b; 2.输入所要求的阶乘&#xff1b; 3.使用while循环 fact*i 就是 fac…

阶乘求和 C语言实现求阶乘之和 三种方法实现 先阶乘再累加

题目&#xff1a; 此处题目是以1-20的阶乘之和举例 方法一&#xff1a;使用一层for循环实现 代码简单快捷容易理解 代码示例如下&#xff1a; #include<stdio.h> int main() {double a 1, sum 0;//因为最后值可能会超出int所能接收的范围 故用doubleint n, i;scanf…

C语言 求n的阶乘及阶乘和

题目 随机输入一个整数n&#xff0c;求出n的阶乘 思路 阶乘&#xff0c;每次乘的数依次递增&#xff0c;直到第n个数&#xff0c;因此我们可以设置一个变量result&#xff0c;用于储存每一次的运算结果。且每次乘的数都依次递增&#xff0c;可以使用for循环语句&#xff0c;…

C语言:运用函数实现阶乘

第一次写的时候&#xff0c;输出一直输出的为初始值&#xff0c;没有输出阶乘后的值&#xff0c;找了好久问题才发现&#xff0c;下次一定注意 编程时要考虑到0和1的阶乘 代码如下&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include<stdio.h>int JC(int num) {in…