Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在具有3个y轴的单个图中绘制4条曲线

在具有3个y轴的单个图中绘制4条曲线
EN

Stack Overflow用户
提问于 2009-11-12 00:28:41
回答 4查看 104.1K关注 0票数 29

我有4组值:y1y2y3y4和一组x。Y值具有不同的范围,我需要将它们绘制为在y轴上具有不同值集合的单独曲线。

简单地说,我需要3个具有不同值(比例)的y轴,以便在同一图形上绘制。

任何感谢的帮助,或关于在哪里寻找的提示。

EN

回答 4

Stack Overflow用户

发布于 2009-11-12 02:36:47

您可以尝试创建3个轴,一个轴堆叠在另一个轴的顶部,并将前两个轴的'Color'属性设置为'none',这样所有的绘图都是可见的。您必须调整轴的宽度、位置和x轴限制,以便3个y轴并排排列,而不是彼此重叠。您可能还希望从两个轴中删除x轴刻度线和标签,因为它们将彼此重叠。

这是一个通用的实现,它计算轴的适当位置和x轴限制的偏移量,以保持绘图正确排列:

代码语言:javascript
运行
AI代码解释
复制
%# Some sample data:
x = 0:20;
N = numel(x);
y1 = rand(1,N);
y2 = 5.*rand(1,N)+5;
y3 = 50.*rand(1,N)-50;

%# Some initial computations:
axesPosition = [110 40 200 200];  %# Axes position, in pixels
yWidth = 30;                      %# y axes spacing, in pixels
xLimit = [min(x) max(x)];         %# Range of x values
xOffset = -yWidth*diff(xLimit)/axesPosition(3);

%# Create the figure and axes:
figure('Units','pixels','Position',[200 200 330 260]);
h1 = axes('Units','pixels','Position',axesPosition,...
          'Color','w','XColor','k','YColor','r',...
          'XLim',xLimit,'YLim',[0 1],'NextPlot','add');
h2 = axes('Units','pixels','Position',axesPosition+yWidth.*[-1 0 1 0],...
          'Color','none','XColor','k','YColor','m',...
          'XLim',xLimit+[xOffset 0],'YLim',[0 10],...
          'XTick',[],'XTickLabel',[],'NextPlot','add');
h3 = axes('Units','pixels','Position',axesPosition+yWidth.*[-2 0 2 0],...
          'Color','none','XColor','k','YColor','b',...
          'XLim',xLimit+[2*xOffset 0],'YLim',[-50 50],...
          'XTick',[],'XTickLabel',[],'NextPlot','add');
xlabel(h1,'time');
ylabel(h3,'values');

%# Plot the data:
plot(h1,x,y1,'r');
plot(h2,x,y2,'m');
plot(h3,x,y3,'b');

结果如下图所示:

票数 14
EN

Stack Overflow用户

发布于 2009-11-12 01:58:19

我知道plotyy允许你有两个y轴,但不能“多管齐下”!

也许您可以将y值归一化,使其具有相同的比例(最小/最大归一化,zscore标准化等),然后您就可以很容易地使用正常的plot, hold序列来绘制它们。

下面是一个例子:

代码语言:javascript
运行
AI代码解释
复制
%# random data
x=1:20;
y = [randn(20,1)*1 + 0 , randn(20,1)*5 + 10 , randn(20,1)*0.3 + 50];

%# plotyy
plotyy(x,y(:,1), x,y(:,3))

%# orginial
figure
subplot(221), plot(x,y(:,1), x,y(:,2), x,y(:,3))
title('original'), legend({'y1' 'y2' 'y3'})

%# normalize: (y-min)/(max-min) ==> [0,1]
yy = bsxfun(@times, bsxfun(@minus,y,min(y)), 1./range(y));
subplot(222), plot(x,yy(:,1), x,yy(:,2), x,yy(:,3))
title('minmax')

%# standarize: (y - mean) / std ==> N(0,1)
yy = zscore(y);
subplot(223), plot(x,yy(:,1), x,yy(:,2), x,yy(:,3))
title('zscore')

%# softmax normalization with logistic sigmoid ==> [0,1]
yy = 1 ./ ( 1 + exp( -zscore(y) ) );
subplot(224), plot(x,yy(:,1), x,yy(:,2), x,yy(:,3))
title('softmax')

票数 6
EN

Stack Overflow用户

发布于 2009-11-12 01:00:09

PLOTYY允许两个不同的y轴。或者,您可以从文件交换查看LayerPlot。我想我应该问一下,您是否考虑过使用HOLD,或者只是重新缩放数据并使用常规的旧绘图?

旧的,并不是OP想要的:SUBPLOT允许你将一个图形窗口分成多个轴。然后,如果您只想显示一个x轴,或进行一些其他自定义,则可以单独操作每个轴。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1719048

复制
相关文章
Matlab绘制包含双Y轴的图
创建左右两侧都有 y 轴的坐标区。yyaxis left 命令用于创建坐标区并激活左侧。后续图形函数(例如 plot)的目标为活动侧。绘制数据对左侧 y 轴的图。
用户9925864
2022/07/27
2.1K0
Matlab绘制包含双Y轴的图
OriginLab绘制分组双Y轴图形
请注意,本文编写于 938 天前,最后修改于 123 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
1.1K0
OriginLab绘制分组双Y轴图形
origin如何绘制双y轴柱状图_Graphpad柱状图双Y轴
tips:origin横坐标的标注如何修改成双行显示呢? shift+enter,可以换行
全栈程序员站长
2022/11/11
3.3K0
origin如何绘制双y轴柱状图_Graphpad柱状图双Y轴
matlab绘制figure的x y轴特殊标签数据
做数据分析的Matlab用户最常见的问题之一是如何在日期轴上绘制数据。很多时候,分析师最初会使用Excel处理数据,然后用相应的工具去处理数据,分析数据。Excel有一种在日期轴上绘制数据的简单方法,但在Matlab中使用日期轴需要麻烦一点。但matlab针对这种特殊情况也有对应的一些函数,使用Matlab完成这项任务并不难,而且和大多数Matlab函数一样,它具有相当大的通用性。
用户9925864
2022/12/16
3K0
matlab绘制figure的x y轴特殊标签数据
【R语言】如何绘制截断Y轴的柱形图
在绘制柱形图的时候, 我们经常会遇到Y轴部分数据范围很广的情况。有些数值很大,但是有些有非常小,不在一个尺度范围内。如果直接使用最大值作为y轴的范围,那么那些数值很小的柱子就会显得很矮,画出来的图会很难看。遇到这种情况我们该如何处理呢?今天就给大家分享一下截断Y轴的柱形图。
生信交流平台
2022/09/21
2.3K0
【R语言】如何绘制截断Y轴的柱形图
如何在WPF绘图中(通过贝塞尔曲线)绘制平滑曲线
GDI图形系统已经形成了很多年。它提供了2D图形和文本功能,以及受限的图像处理功能,在传统的Windows Form 编程中,我们经常使用Graphics图形对象的DrawCurve方法绘制平滑的曲线。
程序你好
2020/11/19
3.1K0
如何在WPF绘图中(通过贝塞尔曲线)绘制平滑曲线
Python-R-双Y轴可视化绘制
最近有很多小伙伴私信我关于双Y轴图的绘制方法? 这里我就直接给出Python-matplotlib绘制方法和R-ggplot2的绘制方法,主要的知识点如下:
DataCharm
2021/02/22
8910
Python-R-双Y轴可视化绘制
如何用R绘制双y轴柱状图
绘制上面这个漂亮的图,要注释以下3点: 1. 双y轴 2. 颜色渐变 3. 横坐标的label对齐 代码及解释如下: library(RColorBrewer) # 载入颜色包 par(mar=c(5
生信交流平台
2020/08/05
2.6K0
如何用R绘制双y轴柱状图
Python-matplotlib双Y轴可视化绘制
最近有很多小伙伴私信我关于双Y轴图的绘制方法? 这里我就直接给出Python-matplotlib绘制方法和R-ggplot2的绘制方法,主要的知识点如下:
bugsuse
2021/01/04
2.1K0
Python-matplotlib双Y轴可视化绘制
python双Y轴
import matplotlib.pyplot as plt import numpy as np x = np.arange(0., np.e, 0.01) y1 = np.exp(-x) y2 = np.log(x) fig = plt.figure() sns.set_style('white') ax1 = fig.add_subplot(111) ax1.plot(x, y1) ax1.set_ylabel('Y values for exp(-x)') ax1.set_title("Dou
用户1359560
2018/08/27
1.3K0
python双Y轴
echart 双折线 双Y轴, 折线,柱形 双Y轴图
双折线图 双Y轴 双坐标系坐标 option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: [ {name: '数值',type: 'value', interval: 300, position:'left'}, {type: 'value', pos
拿我格子衫来
2022/01/24
1.9K0
echart 双折线 双Y轴, 折线,柱形 双Y轴图
echarts的双y轴显示
第一步: 引入echarts import echarts from "echarts"; Vue.prototype.$echarts = echarts //引入组件(全局引入) 第二步: id绑定 <div id="pie"> /// pie 用于存放所要绘制的图形 第三步: 配置options,创建echarts实例 option1: { title: { text: "双坐标轴事例", //标题 show: f
用户4344670
2019/08/28
4.9K0
echarts实现多个y轴
在日常画图,如柱形图、折线图这些图表,需要两组或者两组以上不同的数据,且数据的大小有一定的差异时,通常是需要用两个y轴来体现的。
算法与编程之美
2022/02/17
1.9K0
如何绘制一个figure中有一个x轴,三个y轴?
1、点击[命令行窗口] 2、按<Enter>键 3、点击[命令行窗口] 4、按<Enter>键
裴来凡
2022/05/28
1.2K0
如何绘制一个figure中有一个x轴,三个y轴?
Echarts多Y轴探索
ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。
孟君
2019/09/24
4.9K0
Echarts多Y轴探索
【好久不见】细评python绘制双y轴图的几种方法
双y轴图在实际科研过程中比较常见。但我们常常会为了要把某个图形置于顶层,又或者是要把某个图形对应的y轴固定在某一侧而感到烦恼。别怕,今天这篇推文将会解决你的疑虑!
自学气象人
2022/10/09
3.2K0
【好久不见】细评python绘制双y轴图的几种方法
Echarts设置y轴值间隔
需求:如图,y轴之间的距离太小,这样就太过于拥挤了,现在要修改echarts里面的属性,设置y轴值间隔让图表看上去舒服一些。
王小婷
2019/03/22
9.2K0
Echarts设置y轴值间隔
Stata | 调整 Y 轴文字顺序
鸽了一个暑假,最近试着渐渐更新起来。今天分享一个被好多强迫症小伙伴问到的问题:用 Stata 画图怎么更改 Y 轴文本的顺序。如下图所示,默认绘图的文字为每个字从左到右,但是一般论文在 Y 轴顶端的由上至下的排列。
PyStaData
2021/09/14
3.4K0
Stata | 调整 Y 轴文字顺序
点击加载更多

相似问题

在具有3个y轴的单个图中绘制4条曲线

32

在matplotlib图中绘制与X轴和Y轴垂直的曲线线

28

如何在具有不同y范围的in图中绘制双y轴?

13

如何在How图中绘制光滑曲线?如何去除y轴蜱?

14

曲线图中y轴的设置

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文