笨笨长期以来一直使用Origin软件画图和处理数据,但Origin软件没有编程语言的接口。笨笨开发CChart的一个潜在的目标。是想实现Origin软件的功能。当然这是一个不可能达到的目标。Origin软件的功能太强了。笨笨仅仅能膜拜。

下节课将介绍CChart内置的数据处理功能,这是笨笨向Origin的致敬。

在这之前。本节课首先介绍一下CChart内置的数据存取功能。

A9.1 CChart数据保存

假定我们绘制了如图的两条曲线。

假设要保存全部曲线数据,请点击右键菜单“曲线数据-->保存数据”,将弹出一个“多数据加载存储选项”对话框。

这里有两个选项,连续存储和共享X坐标数据。

首先我们试试两个选项都不选,点击继续,弹出“另存为”对话框。

保存的数据文件格式为TXT文本文件文件。

以下打开保存的数据文件。例如以下。

得到的数据文件由4列数据组成,当中前两列是第一条曲线的x坐标和y坐标。后两列是第二条曲线的x坐标和y坐标。

以下解释一下“多数据加载存储选项”对话框的两个选项。

假设选择“连续存储”选项,所得到的数据文件例如以下。

能够看到,数据文件是依照曲线的顺序依次存储的。为了区分不同的曲线。两条曲线之间有一个分隔符,这个分隔符也是在前面对话框里面设置的。

再看看选择“共享X轴坐标数据”后的情况。

这时候数据文件仅仅有三列。第一列是全部曲线的X坐标,第二列是第一条曲线的Y坐标,第三列是第二条曲线的Y坐标。只是选择这个选项须要你自己保证曲线的X坐标的确是一样的,CChart保存的实际上是第一条曲线的X坐标。

当然也能够保存单条数据。这时候须要点击菜单“曲线数据-->数据名-->管理-->保存数据”。

假设仅仅是看一下数据,还能够点击菜单“曲线数据-->显示数值”。

这时候弹出一个窗体。

这是一个表格,表格里面前两列是第一条曲线的坐标,后两列是第二条曲线的坐标。

假设点击菜单“曲线数据-->数据名-->管理-->显示数值”。也会弹出这么一个窗体,窗体里的内容仅仅是那一条曲线的数据。

在这个表格窗体里面也能够把数据保存到文件。如图,你首先要选择你想保存的数据区域,然后点击右键菜单Copy data。即把数据复制到了剪贴板了。假设你想保存到文件,仅仅须要再利用一下记事本就可以。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

我们拖动鼠标划过第一行1、2、3、4四个格子,就可以选择所有数据。以下先拷贝数据。再打开Excel软件,在A1格子选择粘贴。结果如图。

这么简单就实现了和Excel软件的交互!

以下再用Excel画个曲线试试看。

和CChart画出来的图相比,Excel的图像效果是不是真心弱爆了呢?

A9.2 CChart数据读取

CChart数据读取与数据保存是逆过程,文件的格式要求是一样的。

前面已经按三种格式保存了数据文件。

前面程序中画了两条曲线。以下我们首先点击菜单“曲线数据-->数据名-->管理-->清除数据”,删除掉一条曲线。如图。

这时候我们再点击右键菜单“曲线数据-->加载数据”,将又弹出“多数据加载存储选项”对话框。

点击“继续”后,弹出“打开”文件对话框。

这时候我们选择一个刚才保存的数据文件并打开。注意前一步“多数据加载存储选项”对话框里面的选项。应与保存这个文件时候的选项一致。

当然假设数据文件中面仅仅有一条曲线,那这些选项就无所谓了。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

读入的数据里面是两条曲线,原来另一条。怎么少了一条呢?呵呵。有两条重合在一起了。

右键菜单“曲线数据-->数据名-->管理-->读取数据”的功能类似,只是这个菜单读入的数据将替换掉该曲线原有的数据。

A9.3简单数据处理

在右键菜单“曲线数据-->数据名-->管理”以下。直接提供了两个简单的数据处理功能。一个是交换XY坐标。一个是数据排序。

这两幅图是一条曲线交换XY坐标前后的情况。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

数据排序有四种方式,分别为X升序。X降序,Y升序,Y降序。以下两幅图是分别为排序前和按X升序排列后的情况。

CChart数据存取功能临时就介绍这么多。希望大家不要有然并卵的感觉。下节课再见。

深入浅出CChart 每日一课——快乐高四第九课 于无声处,CChart内置功能介绍之数据存取篇的更多相关文章

  1. 深入浅出CChart 每日一课——快乐高四第六课 二丫的青梅,返璞归真之普通窗体多区域画图

    有好些朋友给我反映,就是一个窗体中加入好几个CChartWnd之后.工作不正常.这个的确是这样,CChartWnd会接管原来窗体的消息循环,加入多个CChartWnd之后,就相当于出租房转手好几道,消 ...

  2. Mysql内置功能《四》存储过程

    存储过程 一 存储过程介绍 存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql 使用存储过程的优点: #1. 用于替代程序写的SQL语句,实 ...

  3. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】

    什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...

  4. centos Linux系统日常管理1 cpuinfo cpu核数 命令 w, vmstat, uptime ,top ,kill ,ps ,free,netstat ,sar, ulimit ,lsof ,pidof 第十四节课

    centos Linux系统日常管理1  cpuinfo cpu核数   命令 w, vmstat, uptime ,top ,kill ,ps ,free,netstat ,sar, ulimit ...

  5. NeHe OpenGL教程 第四十七课:CG顶点脚本

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  6. centos vmware centos6.6 64位 kvm虚拟化安装配置 第四十二节课

    centos vmware centos6.6 64位 kvm虚拟化安装配置     第四十二节课 上半节课 下半节课 f

  7. NeHe OpenGL教程 第四十三课:FreeType库

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  8. NeHe OpenGL教程 第四十课:绳子的模拟

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  9. centos 目录文件管理 mkdir,rm,touch,误删文件extundelete,cp,mv,cat,more,less ,head,tail,chown,chmod ,umask 第四节课

    centos 目录文件管理 mkdir,rm,touch,误删文件extundelete,cp,mv,cat,more,less ,head,tail,chown,chmod ,umask  第四节课 ...

随机推荐

  1. elasticsearch indices.recovery 流程分析(索引的_open操作也会触发recovery)——主分片recovery主要是从translog里恢复之前未写完的index,副分片recovery主要是从主分片copy segment和translog来进行恢复

    摘自:https://www.easyice.cn/archives/231 elasticsearch indices.recovery 流程分析与速度优化 目录 [隐藏] 主分片恢复流程 副本分片 ...

  2. WebP 文件及其编码解码工具(WebPconv)

    1. webp 文件 与JPEG相同,WebP 是一种有损压缩利用预测编码技术. WebP 是 Google 新推出的影像技术,它可让网页图档有效进行压缩,同时在质量相同的情况下,WebP 格式图像的 ...

  3. js 获取现在时间一个月(N天)后的日期

    欢迎加入前端交流群交流知识&&获取视频资料:749539640 let today = new Date().getTime() let lastDay = getTimeByDay( ...

  4. SpringBoot中拦截器和过滤器的使用

    一.拦截器 三种方式 继承WebMvcConfigurerAdapter   spring5.0 以弃用,不推荐 实现WebMvcConfigurer  推荐 继承WebMvcConfiguratio ...

  5. 30秒就能理解的JavaScript优秀代码

    数组 arrayMax 返回数组中的最大值. 将Math.max()与扩展运算符 (...) 结合使用以获取数组中的最大值. const arrayMax = arr => Math.max(. ...

  6. VM虚拟机NAT模式主机与虚拟机ping不通解决方案

    VM虚拟机与真机通信三种模式, 桥接模式,NAT 模式 ,HOST-ONLY 模式. NAT模式 使用虚拟机的一个虚拟网卡做NAT网关,在nat网关上配dhcp ,或者直接用静态地址.就相当于形成了一 ...

  7. C++调用matlab编程

    C++调用Matlab,实在是不得已的方法.原文链接: http://kylen314.blog.com/2012/12/11/matlab_for_cplusplus/  这是个很善良的博客,只出现 ...

  8. main函数解析

    原文链接:http://parisliu2008.blog.163.com/blog/static/95070867200951510412959/ main参数 2009-06-15 10:41:2 ...

  9. Ad_hoc_polymorphism 备份

    https://en.wikipedia.org/wiki/Polymorphism_(computer_science) https://en.wikipedia.org/wiki/Ad_hoc_p ...

  10. SpringMVC(五)@RequestHeader和@CookieValue

    通过使用@RequestHeader获取请求头 通过使用@CookieValue获取cookie值 代码: 1: @Controller 2: public class TestHeader_Cook ...