matlab中如何对一条曲线和X轴之间的区域进行颜色的填充,比如一个高斯曲线下对应不同X段范围填充不同的颜

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中如何对一条曲线和X轴之间的区域进行颜色的填充,比如一个高斯曲线下对应不同X段范围填充不同的颜相关的知识,希望对你有一定的参考价值。

t=0:0.01:2*pi;

y=sin(t);

y2=y+2;

plot(t,y,t,y2,\'r\');

hold on% 如果t的维数较小,可以加细。

n=length(t);

for i=1:nx1=[t(i),t(i)];

y1=[y(i),y2(i)];

plot(x1,y1,\'k\');

end

美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中。

为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

参考技术A 这个没有一次性的办法,只能用area分段拼凑出来了:
close all
x = 0:0.1:pi;
y = sin(x);
area(x,y,'FaceColor','r');
hold on
x = pi:0.1:2*pi;
y = sin(x);
area(x,y,'FaceColor','g');
x = 2*pi:0.1:3*pi;
y = sin(x);
area(x,y,'FaceColor','b');
axis([0,3*pi,-1,1])

注意最后x轴坐标一定要设置,否则图像显示不完全。
颜色的设置可以自己任意,将‘b’,‘r’等换成[a b c]格式的RGB色就可以。

如果你有一条高斯曲线的x,y数据,就把它分成上图中的三段,用三次area命令就好了。本回答被提问者采纳

如何获取 ROC 曲线中 x 轴(FPR)和 y 轴(TPR)的值

【中文标题】如何获取 ROC 曲线中 x 轴(FPR)和 y 轴(TPR)的值【英文标题】:How do I get the values of x-axis(FPR) and y-axis(TPR) in ROC curve 【发布时间】:2020-04-04 12:05:40 【问题描述】:

我正在尝试使用plotly.js 和在 R 中获得的值制作 ROC 曲线。

plotly 中,我必须填写值(x 轴,y 轴)来制作绘图。

但是,当我使用逻辑回归函数glmmultinom(在nnet 包中)时,我不知道如何获取值。

df <- data.frame(age = c(10, 20, 30, 40, 50),height = c(150, 161, 141, 155, 180), house = c("0", "0", "0", "1", "1"))
smp_size <- floor(nrow(df) * (0.6))
train_idx <- sample(seq_len(nrow(df)), size = smp_size)

train <- df[train_idx, ]
validation <- df[-train_idx, ]

validation_x <- validation[c("age", "height")]
validation_y <- validation[["house"]]

m <- glm(house ~ age + height, data = train, family = 'binomial')
y_pred <- predict(m, validation_x)

library(plotROC)
plotROC(validation_y, y_pred)

我想知道如何获取ROC曲线中x轴(FPR)和y轴(TPR)的值

谢谢。

【问题讨论】:

哦!我不知道这个功能。感谢您的有用回答! 【参考方案1】:

使用包pROC中的函数roc()

# install.packages("pROC")
library(pROC)
my.roc <- roc(validation_y, y_pred)

roc() 返回一个记录特异性(x 轴)、敏感性(y 轴)、阈值、AUC 和其他信息的列表。您可以使用$ 提取它们:

my.roc$specificities
my.roc$sensitivities

【讨论】:

以上是关于matlab中如何对一条曲线和X轴之间的区域进行颜色的填充,比如一个高斯曲线下对应不同X段范围填充不同的颜的主要内容,如果未能解决你的问题,请参考以下文章

如何在matlab画的图中改变坐标显示的范围

matlab里怎么画一个x轴两个y轴的图

matlab 双y轴绘图能否多条线跟你共用一个y轴?

matlab步长如何设置

matlab步长如何设置

matlab如何实现两条曲线之间填充颜色?