1. delphi7 用tchart 绘制波形,数据太多显示太密集如图1 ,有什么办法能加个水平滚动条显示,
DELPHI7安装目录下有个demos的目录,里边有个teechart的目录,你打开teedemo.dpr,你会看到所有chart的范例,我就不讲解了
2. teechart重画,该怎么处理
方法/步骤1
在网上下载TeeChart控件并安装,安装自然不用多说,安装完后找到安装路径(带有TeeChart5.ocx文件),复制当前路径
怎样在VS2013/MFC中使用TeeChart绘图控件
2
安装完后需要对控件进行简单的注册,打开cmd,通过cd指令并粘贴原来复制好的路径,转到软件安装好的目录;
接着输入:regsvr32 TeeChart5.ocx,然后弹出对话框提示注册成功
怎样在VS2013/MFC中使用TeeChart绘图控件
3
注册完毕,打开VS2013,新建一个MFC项目,在VC++栏中找到MFC项目,选择好项目存放的目录并填写项目名称
怎样在VS2013/MFC中使用TeeChart绘图控件
4
接着是创建向导,只需修改选择“基于对话框”模式,至于“最小化框”和“最大化框”随各自情况选择,其余的默认点“下一步”即可
怎样在VS2013/MFC中使用TeeChart绘图控件
怎样在VS2013/MFC中使用TeeChart绘图控件
5
将默认生成的三个控件按delete键删除
怎样在VS2013/MFC中使用TeeChart绘图控件
6
接下来导入TeeChart控件,选择“工具"-》"选择工具箱项"-》"COM组件",找到"TeeChart Pro Active control v5"并选中它,点击"确定"
怎样在VS2013/MFC中使用TeeChart绘图控件
怎样在VS2013/MFC中使用TeeChart绘图控件
3. delphi teechart 如何将不同数量级(Y轴)的多条曲线,都能明显的在同一chart里显示出来
要显示合适的曲线,可以通过改变各曲线的Y值比例来实现:
设chart1的X、Y轴最大、最小值为XM、YM、XN、YN,各曲线的最大、最小值为XM[1]..XM[n]、YM[1]..YM[n]、XN[1]..XN[n]、YN[1]..YN[n]
将添加点的语句由
chart1.series[i].AddXY(X[i,j],Y[i,j]);
改为
chart1.series[i].AddXY(X[i,j]*(XM-XN)/(XM[i]-XN[i]),Y[i,j]*(YM-YN)/(YM[i]-YN[i]));
即可。
如果数据是直接从数据集(如table1)中获得的如字段X、Y,那么要先在数据集中增加两个计算字段Xc、Yc(即类型为Calculated的NewField),并在table1的OnCalculate事件中加上
table1Xc.Value:=table1X.Value*(XM-XN)/(XM[1]-XN[1]);
table1Yc.Value:=table1Y.Value*(YM-YN)/(YM[1]-YN[1]);
chart1点的坐标改为Xc、Yc即可。
但这样做的缺点是无法从chart1中直接读出Y的真实值。
4. teechart控件中 多个series可以组合吗
1.注册TeeChart5.ocx
先将TeeChart5.ocx文件拷贝到工程文件夹中。然后,打开命令提示符,cd进入TeeChart5.ocx所在路径,输入“regsvr32 TeeChart5.ocx”,注册TeeChart5.ocx。注册成功后,会有一个提示框。如果不想使用可以输入命令“regsvr32 –u TeeChart5.ocx”解除注册。
2.新建工程,将自带的类放到一个文件夹中,例如“src”。因为添加TeeChart后会生成很多新的类,看起来不方便。
3.将TeeChart控件加到Control List中
Project->Add To Project->Components and Controls->Registered ActiveX Control-> TeeChart Pro Activex control v5->insert
这时,在Control List的右下角多了一个圆形的小图标,在类视图中多出了许多的新类,将他们放在一个文件夹中,例如“teeChart”。
以下,将说明如何具体的使用TeeChart控件 4.拖拽TeeChart到对话框中
拖拽TeeChart到对话框中,调整TeeChart的大小,稍作修改,界面设计就完成了。右击控件->属性->teechart pro editer选项卡->edit chart。出现一个名为Edit的对话框。这个对话框非常重要,包括了teechart的各种属性。 简要介绍一下各属性:
Series:该属性包含需要绘制的图表的类型,如曲线、饼图、柱状图等等,种类很多。 Chart:该选项包含了图表的显示部分的很多属性,如坐标轴、背景、标题等等。 Data:绘制图表需要的数据。
Export:包含了一些将图表导出为图片格式的选项。 Print:打印设置。
Themes:图表的主题,主要是显示方式。
5.建立变量
使用类向导建立teechart的对象:CTChart m_chart; 在xxxDlg.cpp文件中添加以下头文件: #include "axis.h"
#include "axes.h"
#include "scroll.h"
#include "series.h"
//#include "tchart.h"
#include "series.h"
#include "valuelist.h"
#include "axes.h"
#include "axis.h"
#include "pen.h"
#include "axislabels.h"
#include "teefont.h"
#include "axistitle.h"
#include "aspect.h"
#include "titles.h"
#include "fastlineseries.h"
#include "panel.h"
#include "legend.h"
#include "tools.h"
#include "toollist.h"
#include "annotationtool.h"
#include "page.h"
5. MFC中teechart怎么从文档中读取数据绘图
在网上下载TeeChart控件并安装,安装自然不用多说,安装完后找到安装路径(带有TeeChart5.ocx文件),复制当前路径
2
安装完后需要对控件进行简单的注册,打开cmd,通过cd指令并粘贴原来复制好的路径,转到软件安装好的目录;
接着输入:regsvr32 TeeChart5.ocx,然后弹出对话框提示注册成功
注册完毕,打开VS2013,新建一个MFC项目,在VC++栏中找到MFC项目,选择好项目存放的目录并填写项目名称
接着是创建向导,只需修改选择“基于对话框”模式,至于“最小化框”和“最大化框”随各自情况选择,其余的默认点“下一步”即可
将默认生成的三个控件按delete键删除
接下来导入TeeChart控件,选择“工具"-》"选择工具箱项"-》"COM组件",找到"TeeChart Pro Active control v5"并选中它,点击"确定"
在工具箱中找到“TeeChart Pro Active control v5”控件并拖放到对话框上,适当调整控件大小
控件已经导入了,接下来需要添加相关的“类”和“变量”,首先添加类。
在“类视图”中右键项目名称,选择“添加”-》“类”;
然后选择“MFC”项中的“TypeLib中的MFC类”,点“添加”。
在注册表的可用类型库中找到"TeeChart Pro Active control v5<1.0>",这里不需要一直下拉慢慢找,只要输入"tee"就可以直接选中
在“接口”中选择所需的类,Teechart控件包含很多类,CTChart是必须的,对应的接口是“ITChart”,其他类包括CSeries、CAxis、CAxes、CTitles等等,这里仅以“CTChart”和“CSeries”为例,选择“ISeries”、“ITChart”。
确定以后可以在类视图中看到新添加的两个类。
接下来需要对控件关联变量,对控件右键选择“添加变量”,选择默认的控件类型,属于类“CTchart1”,对变量进行命名,这里命名为"m_chart",这样类和变量就关联好了。
项目中会多出一个tchart1.h文件和tchart1.cpp文件,在对话框类的头文件CTestDlg.h中会有“CTchart1 m_chart;”的变量定义,但是CTestDlg.cpp文件中对话框类的构造函数会多出一句“, m_chart(0)”,需要把它删除,否则会编译出错。这样前期准备工作就完成了
6. teechart放大缩小
我是这样做的,我在teechart控件中加了一个Series 叫horizBar1然后把从数据库中读取出的dataset给horizBar1.DataSource!
7. MFC,要用teechart控件显示实时曲线图,数据来串口,要如何实现
您好,MSChart显示效率是个问题,尤其是实时采集显示;
我之前做过一个温度采集的MFC系统,
用的是双缓冲技术。
还有就是串口通信网上应该很多,我没有用过MSCOM控件,
自己使用了一个串口类,
其他问题没什么了。
1.TeeChart是可以实时显示的 估计是你的数据有问题。
2.滚动显示需要你自己做个处理 把TeeChart的横轴每次从新设置一下 把x轴坐标每次向前移动一个。
3.不是正弦 不是TeeChart的问题 检查你的数据。
8. 在C#中如何使用teechart组件读取并绘制datatable中的数据并绘图
1.添加teechart到工具箱。
步骤 工具箱上点右键,添加选项卡->选择项->选择teechart.dll确定即可。可以同时添加language.dll
2. 新建一个aspx页面,拖一个teechart到页面中,设置属性并添加个Button。代码如下:
<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="TeeChart" Namespace="Steema.TeeChart.Web" TagPrefix="tchart" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<tchart:WebChart ID="WebChart1" runat="server" Width="800px"Height="600px" GetChartFile="GetChart.aspx" TempChart="Session"/>
<asp:Button ID="Button1" runat="server" Text="确定" onclick="Button1_Click" />
</div>
</form>
</body>
</html>
3.假如我们想画一个折线图,添加后台代码如下:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Steema.TeeChart.Styles;//方便添加各种类型的曲线
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt = GetData();//获取数据
Line line = new Line();//teechart中的折线图
foreach (DataRow dr in dt.Rows)//添加数据
{
line.Add(Convert.ToInt32(dr[0]), Convert.ToDouble(dr[1]));
}
WebChart1.Chart.Series.Add(line);//所有的曲线必须添加到 series中
WebChart1.Chart.Aspect.View3D = false;//2D图片,否则是3D的
}
public DataTable GetData()//产生数据写的稍微有些麻烦
{
DataTable dt = new DataTable();
DataColumn dc0 = new DataColumn("Year");
DataColumn dc1 = new DataColumn("Value");
dt.Columns.Add(dc0);
dt.Columns.Add(dc1);
Random r = new Random();
Hashtable hashtable = new Hashtable();
int RowNum = 10;
for (int i = 0; hashtable.Count < RowNum; i++)
{
int value = r.Next(1, 50);
if (!hashtable.Contains(value))
{
hashtable.Add(i, value);
}
}
ArrayList keys = new ArrayList();
foreach (int key in hashtable.Keys)
{
keys.Add(key);
}
for (int i = 2000; i < 2010; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i;
dr[1] = hashtable[keys[i-2000]];
dt.Rows.Add(dr);
}
return dt;
}
}
4.说明 teechart中有GetChartFile="GetChart.aspx" TempChart="Session" 这两个属性是必须设置。否则图片将是一个X。
GetChart.aspx是个固定的页面什么原理没有研究,贴出代码如下
前台:<%@ Page language="c#" Inherits="WebForm.GetChart" CodeFile="GetChart.aspx.cs" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD html 4.0 Transitional//EN" >
<html>
<head runat="server">
<title>GetChart</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name=vs_defaultClientScript content="JavaScript">
<meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body>
<form method="post" runat="server">
</form>
</body>
</html>
后台:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
namespace WebForm
{
/// <summary>
/// Summary description for GetChart.
/// </summary>
public partial class GetChart : System.Web.UI.Page
{
protected void Page_Load(object sender, System.EventArgs e)
{
// *************************************************************
// Code to retrieve Session saved streamed Charts to a WebForm.
// This code should be included if the WebChart 'UseStreams' property is set to True.
// *************************************************************
string chartName=Request.QueryString["Chart"];
if (Session[chartName]!=null)
{
MemoryStream chartStream = new MemoryStream();
chartStream=((MemoryStream)Session[chartName]);
Response.OutputStream.Write(chartStream.ToArray(),0,(int)chartStream.Length);
chartStream.Close();
Session.Remove(chartName);
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
}
#endregion
}
}
运行之后效果如下所示:
9. TeeChart应用技术详解的目录
前言
第1章TeeChart图表工具快速入门
1.1TeeChart及功能简介
1.1.1TeeChart简介
1.1.2TeeChart基本特性
1.1.3TeeChaxt程序开发环境
1.2TeeChart的安装
1.2.1删除Delphi7自带的TeeChart
1.2.2安装TeeChartProv7FullSources
1.3TChart的组成
1.3.1TChart的组成元素
1.3.2图表元素之间的关联
1.3.3图表组件的主要属性
1.3.4图表组件的方法
1.3.5图表组件的事件
1.3.6图表组件提供的工具与组件群
1.4TChart组件的应用举例
1.4.1创建图表的一般步骤
1.4.2使用TeeChart向导创建图表
1.4.3使用TeeChart向导创建数据库图表
第2章TeeChart的组件及应用实例
2.1TeeChart页面上的组件概述
2.2TeeChart的组件应用实例
2.2.1图表编辑器
2.2.2数据栅格与导航
2.2.3序列列表与命令工具
2.2.4三维画板、工具与TeeOpenGL
2.2.5序列与函数库组件
2.2.6图表滚动棒与页面导航组件
2.2.7对象观察器与打印预览
2.2.8多图表打印预览
2.2.9序列数据集组件SeriesDataset
2.2.10序列文本源组件SeriesTextSource
2.2.11交叉源组件DBCrossTabSource
2.2.12XML数据源组件ChartWebSource
2.2.13Web数据源组件ChartWebSource
第3章图表与序列的操作维护
3.1图表轴的维护
3.1.1-轴的刻度设置
3.1.2时间轴与对数轴
3.1.3轴的反转
3.1.4轴的风格与增量
3.1.5时间轴增量
3.1.6栅格线与轴标签
3.1.7自定义轴绘制(CustomDraw)
3.1.8自定义轴(CustomAxes)
3.2序列的维护
3.2.1运行期间创建序列
3.2.2序列列表、计数与删除
3.2.3运行时改变序列的z顺序
3.2.4增加序列的点
3.2.5增加数组中的数据
3.2.6空值
3.2.7点的顺序控制和限制
3.2.8点的删除
3.2.9序列中点查找与修改
3.2.10序列中点的定位
3.2.11点值的统计运算
3.2.12点的颜色
3.2.13点的标签
3.2.14运行期间序列类型的改变
3.3函数的操作
3.3.1增加函数
3.3.2删除函数
3.3.3周期
3.4图表的放大与滚动
3.4.1放大(Zoom)
3.4.2动画放大(AnimateZoom)
3.4.3使用代码进行放大(ZoomByCode)
3,4.4恢复显示(UndoingZoom)
3.4.5放大事件(ZoomEvents)
3.4.6滚动(Scrolling)
3.5在图表上自行绘制
3.5.1轴的值转换到屏幕坐标
3.5.2序列的值转换到屏幕坐标
3.5.3图表画布(ChartCanvas)
3.6点击事件
3.6.1在图表的序列上单击(ChartOnClickSeries)
3.6.2在图表上单击(ChartOnClick)
3.6.3在序列上单击和双击(SeriesOnClickandOnDblClick)
第4章TeeChart的序列与函数
4.1序列(Series)
4.1.1标准类(Standard)序列
4.1.2扩充类(Extended)序列
4.1.3财经类(Financial)序列
4.1.4统计类(Stats)序列
4.1.5三维类(3D)序列
4.1.6其他类(Other)序列
4.2函数(Function)
……
10. Teechart中如何将图表中的数据(包含名称)
试试这个,显示的就是名称。
MsgBox 图表名.Series(图表ID).PointLabel(数据行号)