对于时间序列图,如何将 x 轴设置为没有周末的日历时间

2024-03-30

我想绘制一个时间序列(外汇期货合约的定价数据)。时间给出yyyymmdd HH:MM:SS字符串格式。价格在double.

该时间序列跨越一周多。但是,数据点的时间戳始终是工作日。是否有内置方法可以显示适当的 x 轴标签和缩放比例但没有周末?

我目前可以通过将字符串中的时间戳转换为来显示时间序列datenum https://www.mathworks.com/help/matlab/ref/datenum.html并自动排列 x 轴datetick https://www.mathworks.com/help/matlab/ref/datetick.html。但我想知道如何排除 x 轴上的周末。或者从网格中排除没有数据的任何延长的时间间隔。

如需视觉效果,请参阅最后的示例。如果可以排除由于包括周末(4 月 10 日是美国假期)而导致的大量空白,则通过关注实际有数据的位置,该图可以变得更加清晰。

数据点本身仅限于工作日。但之间plot and datetick,只要时间序列跨越一周,就会创建周末的网格点。datetick很有用,因为它可以检测 x 轴网格的适当缩放比例并一次性应用相应的网格标签。如果你看到datetick作为解决方案的一部分,有没有办法在使用后删除特定的网格点datetick?

Example:

T=[7.378903958333334e+05;7.378967076388889e+05]; % converted from "20200409 09:30:00" and "20200415 16:59:00"
C=[0.7166;0.7090]; 

grid on
plot(T,C,'.')
xlim([min(T),max(T)])
datetick

如果您有兴趣修改相同的图,请通过 c&p 将数据检索到 Matlab cmdpastebin https://pastebin.com/3ZAjSF0d。上面相同的行将产生下面的图。


没有这样的功能。可能是因为这本质上使 x 轴不连续,这(通常)是不可取的。

您必须创建一个合成 x 轴,通过整理周末(或者更确切地说是非工作日)来实现此目的。 这是标准图(工作日为蓝色)

% create data
T = 7.3789e+05+(0:5:100)/10.';
C = rand(size(T)); 

% is a busniess day?
lg = isbusday(T);

% standard date plot
plot(T(lg),C(lg),'o', T(~lg),C(~lg),'o')
datetick('x','ddd')

现在让我们摆脱其他日子并设置xTickLabel手动:

T = T(lg);
C = C(lg);
% plot without time-axis
plot(C,'o')

% --- get ticks
xTick = get(gca,'XTick');
% get which ticks are integers
lg = isreal(xTick) & rem(xTick,1)==0;
XTick_new = xTick(lg);
% --- create new tick label
xTickLbl_new_num = NaN(size(XTick_new));
% make sure they are within the limits
lg = XTick_new >= 1 & XTick_new <= length(T);
xTickLbl_new_num(lg) = T(XTick_new(lg));
% convert to string (arbitrary format)
xTickLbl_new_str = strings(size(xTickLbl_new_num));
xTickLbl_new_str(lg) = datestr(xTickLbl_new_num(lg),'ddd');
% set new label
set(gca,'XTick',XTick_new,'XTickLabel',xTickLbl_new_str);

Have a look on the results: left the standard version and on the right the version with manually set tick-labels. comparison

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对于时间序列图,如何将 x 轴设置为没有周末的日历时间 的相关文章

  • 覆盖 MATLAB 默认静态 javaclasspath 的最佳方法

    MATLAB 配置为在搜索用户可修改的动态路径之前搜索其静态 java 类路径 不幸的是 静态路径包含相当多非常旧的公共库 因此如果您尝试使用新版本 您可能最终会加载错误的实现并出现错误 例如 静态路径包含 google collectio
  • 有没有办法在 MATLAB 中查看 pcode 文件 (.p) 的源代码?

    有没有办法在 MATLAB 中打开 pcode 文件 p 如果 开放 是指edit 那么当然不是 pcode 中的 p 代表 受保护 其主要设计目标是在保护其源代码的同时部署功能组件 如果 开放 是指run 那么当然是的 引用手册 http
  • 一次分配多个字段的聪明方法?

    由于遗留函数调用 我有时被迫编写像这样的丑陋的包装器 function return someWrapper someField a someField a b someField b and so on realistically it
  • 将此 MATLAB 代码转换为 Python 时我做错了什么?

    我正在努力将生成波形的 MATLAB 代码转换为 Python 就上下文而言 这是原子力显微镜带激发响应的模拟 与代码错误无关 在 MATLAB 中从 r vec 生成的图形与我在 Python 中生成的图形不同 我是否正确地将 MATLA
  • 在 3d 空间中的两个平面之间进行插值

    我正在开发一种工具 可以让您在 3D 体积 上圈出 包围事物 我想通过标记 切片 1 和 3 并从该信息 填充 切片 2 来节省时间 两个简单的解决方案是 1 slice2 slice1 AND slice3 gets the overla
  • 如何在 MATLAB 中可视化球体的交集?

    似乎这个问题在一些地方被问过 包括SO https stackoverflow com questions 35130336 draws the intersecting volume of two spheres in matlab 我最
  • 如何在Matlab中自定义轮廓线?

    我正在准备一个等高线图 我应该在其中突出显示特定级别的等高线 例如 我的轮廓线值位于 1 和 1 之间 我想突出显示与值 0 相对应的线 我尝试使用以下过程来执行此操作 M c contourf longitude latitude del
  • 在 Excel 中打印 MATLAB 图窗并调整其大小

    我在 MATLAB 中有两个带有手柄的图形hFig1 and hFig2 我想将它们打印到 Excel 中的特定单元格 单元格 E3 和 I3 并将它们重新调整为 2 英寸 x 3 英寸 我尝试过使用 AddPictures对象处理程序和使
  • matlab mex 文件和 C++ dll (Windows)

    我有一个带有 Test 类的 DLL 标题 class MY EXPORT Test public int doit const string str 和来源 int Test doit const string str return in
  • Matlab中转换数据类型的有效方法(double vs. im2double)

    我想将真彩色图像转换为双精度 据我所知有两种方法可以做到这一点 double rgb img im2double rgb img 哪一种效率更高 谢谢 他们都是不同的 im2double将图像的范围转换为0 1如果数据类型是uint8 or
  • MATLAB 中最有效的矩阵求逆

    在 MATLAB 中计算某个方阵 A 的逆矩阵时 使用 Ai inv A should be the same as Ai A 1 MATLAB 通常会通知我这不是最有效的求逆方法 那么什么是更有效率的呢 如果我有一个方程系统 可能会使用
  • 如何使用matlab生成不同频率的正弦波?

    对于我的项目 我需要使用 matlab 生成一个正弦波 它有 100 000 个样本 并且频率在每 10 000 个样本后随机变化 采样率和频率可以根据方便而定 matlab中有没有函数可以生成这个 好的另一个例子 生成 5 个随机频率 r
  • 在另一列中添加具有特定条件的一列,如 excel 的 sumif

    我有一个像这样的矩阵 A 1 2 2 3 3 4 4 5 5 6 6 8 7 9 8 5 9 4 现在我想添加第二列 条件是如果 limit 0 interval 3 且 limit limit interval 或者换句话说 当第 1 列
  • 使用mat2cell将MxN的矩阵划分为1xN大小的M矩阵

    我有一个大小为 MxN 的矩阵 比方说 1867x3 1867 行和 3 列 我想将其分成 1867 个大小为 1x3 的单元格 我使用了mat2cell X 1 1866 这里X是矩阵 1867x3 结果给出了两个单元格 一个单元格的大小
  • 句柄类和值类的区别

    我有一些 C 背景 想使用 Matlab 中的类 句柄和值类有什么区别 我知道如果我想定义一个带有重载运算符 例如 和 的矩阵类 我会使用值类 然而 有时 当我选择一个手柄类时 事情似乎只对我有用 MathWorks 提供了一些有关其用途的
  • Simulink 仿真引擎如何工作?

    我想了解 Simulink 仿真引擎的工作原理 它是否使用离散事件模拟机制 那么如何处理连续时间 它是否依赖于基于静态循环的代码生成 或者 在第一个周期之前 它会计算出块的执行顺序 从不需要任何其他块输入的块开始 每个周期 它都会根据输入和
  • 如何在 Matlab 中对数组应用低通或高通滤波器?

    有没有一种简单的方法可以将低通或高通滤波器应用于 MATLAB 中的数组 我对 MATLAB 的强大功能 或数学的复杂性 有点不知所措 需要一个简单的函数或一些指导 因为我无法从文档或网络搜索中找到答案 看着那 这filter http w
  • Matlab 和 Python 中的优化算法(dog-leg trust-region)

    我正在尝试使用 Matlab 和 Python 中的狗腿信赖域算法求解一组非线性方程 在Matlab中有fsolve https www mathworks com help optim ug fsolve html其中此算法是默认算法 而
  • 使用符号求解器仅求解某些变量

    我正在尝试在 MATLAB 中求解包含 3 个变量和 5 个常量的方程组 是否可以使用solve求解三个变量 同时保持常量为符号而不用数值替换它们 当您使用SOLVE http www mathworks com access helpde
  • 通过 Matlab 访问 Physionet 的 ptbdb 中的数据库

    我首先设置系统 old path which rdsamp if isempty old path rmpath old path 1 end 8 end wfdb url http physionet org physiotools ma

随机推荐

  • Java 编译器:停止抱怨死代码

    出于测试目的 我经常开始在现有项目中输入一些代码 因此 我想要测试的代码位于所有其他代码之前 如下所示 public static void main String args char a System out println int a
  • C++ 变量定义中的“class”关键字

    在有人问之前 是的 这是家庭作业的一部分 是的 在问之前我做了很多谷歌搜索 我花了最后一个小时在谷歌上用很多很多不同的关键词进行了集中搜索 但就是找不到任何东西 那么问题来了 下面的变量定义是什么意思 class MyClass myCla
  • 为什么错误回溯显示编辑后的脚本而不是实际运行的脚本?

    背景 考虑以下最小示例 当我保存以下脚本并从终端运行它时 import time time sleep 5 raise Exception 该代码将在休眠五秒后引发错误 并留下以下回溯 回溯 最近一次调用最后一次 文件 test minim
  • 动态 REST API 调用

    我已经成功访问 页面上的静态API数据 我现在正在尝试访问 dynam API 我已经阅读了一些访问动态API的文档 但是API提供商的文档与在线资源不同 我不确定必须在现有代码中进行哪些更改才能访问动态 API 数据 这是来自 API 提
  • 初始化时0.0f的意义是什么(在C语言中)?

    我见过人们初始化浮点变量的代码 如下所示 float num 0 0f 这与仅执行以下操作之间有显着差异吗 float num 0 谢谢 浮动 x 0具有从 int 到 float 的隐式类型转换 浮点数 x 0 0f没有这样的类型转换 浮
  • Swift:从元组数组中获取元素数组

    我有一个像这样的元组数组 var answers number Int good Bool 我想从中获取一个数字成员数组 就像我做了类似的事情 answers number gt Should give Int of all values
  • -fPIC 标志可以增加多少开销?

    Question 我正在测试一个计算曼德尔布罗分形的简单代码 我一直在根据检查点是否属于曼德尔布罗特集的函数中的迭代次数来检查其性能 令人惊讶的是 添加后我的时间出现了很大的差异 fPIC旗帜 据我了解 开销通常可以忽略不计 我遇到的最高开
  • C++ 中最大的整数数据类型?

    C 中最大的整数数据类型是什么 最大的standardC 整数类型是long C has a long long C 0x 也会添加它 当然您可以实现自己的自定义整数类型 甚至可能是 BigInt 类 但从技术上来说 考虑到内置的整数类型
  • 行程解压

    这里是CS学生 我想编写一个程序来解压缩根据游程编码的修改形式进行编码的字符串 我已经为其编写了代码 例如 如果字符串包含 bba10 它将解压缩为 bbaaaaaaaaaa 如何让程序识别字符串的一部分 10 是整数 谢谢阅读 一个简单的
  • 为什么即使在哈希上调用 Enumerable#find/#detect 也会返回数组?

    The 的文档Enumerable find detect http ruby doc org core 2 0 Enumerable html method i find says find ifnone nil obj block ob
  • 使用未分配的变量?

    当声明 paymentstatus 为空或在 if 语句中具有值时 我收到错误使用未分配的变量 ps 我想我已经声明了 ps 但显然我做错了什么 为什么编译器会抱怨这个 这是上下文中的错误 public IList
  • 如何求最大生成树?

    与克鲁斯卡尔最小生成树算法相反的算法是否适用 我的意思是 每一步选择最大权重 边缘 还有其他找到最大生成树的想法吗 是的 它确实 计算网络 G 的最大权生成树的一种方法 由于克鲁斯卡尔 可以总结如下 按权重将 G 的边按降序排序 令 T 为
  • Netbeans 告诉我删除 null 比较,但这会破坏我的代码

    我有以下简单的代码来模拟猫狩猎 import java util Arrays import java util LinkedList public class HuntigSaeson int hunger 4 int level 3 L
  • setInterval 似乎不起作用?

    这段代码似乎不起作用 我正在尝试创建一个可用聊天室的动态列表 每 10 秒更新一次 我还希望用户能够设置参数来过滤要显示的房间 我正在使用这段代码 但由于某种原因它似乎不起作用
  • 无法查看 Service Worker 日志

    看不到我的 Service Worker 的日志 以下是我尝试打开已注册和正在运行的服务工作人员日志的步骤 Open chrome serviceworker internals 单击开始并检查 刷新检查窗口 等待日志出现 但是 两者chr
  • 在 coreos 上启动 calicoctl 容器

    我有 CoreOS 测试版 1153 4 0 我正在尝试运行 calicoctl 来检查我的 calico 网络是否配置正确 所以我尝试使用以下命令运行 calicoctl rkt 容器rkt run quay io calico ctl我
  • Rails ActiveRecord:如何在 jsonb 上使用带双引号的绑定变量

    我有一个 postgres jsonb 查询如下 Blog where upload data gt name name 它可以工作 但会破坏构建 因为优秀的刹车员指出了可能的 SQL 注入风险 如果我使用绑定变量 Blog where u
  • 类型转换为 Dalvik 格式失败:无法执行 dex:包装器未首先正确加载

    当我在 Eclipse 中使用 Android SDK 和 AVD Manager 时 我遇到过各种奇怪的错误 就像标题中的错误一样 一般来说 我只是拔掉手机插头 然后重新插入 或者关闭并重新打开 Eclipse 但这很令人沮丧 显然Con
  • 浏览器不遵循 AJAX 响应的重定向(PHP 生成的响应使用 CAS 身份验证)

    好吧 看来我最初的问题犯了一个错误 因此 这里有一些更正 答案仍然适用 因为当协议更改为 HTTPS SSL 时 第二个重定向就会停止 就我而言 重定向发生了多次 并且浏览器不遵循第二次重定向 遵循第一个重定向 但返回错误 我一直读到包含重
  • 对于时间序列图,如何将 x 轴设置为没有周末的日历时间

    我想绘制一个时间序列 外汇期货合约的定价数据 时间给出yyyymmdd HH MM SS字符串格式 价格在double 该时间序列跨越一周多 但是 数据点的时间戳始终是工作日 是否有内置方法可以显示适当的 x 轴标签和缩放比例但没有周末 我