我要达到的功能
1。x轴从0~10
2。y轴从0~100
3。绘制10个点并连成曲线我开始是用折线图的,但是折线图的起点的X坐标不在坐标原点上。后来我用xy散点图,但是出来的图x轴和y轴的单位长度是一样的,也就是说Y轴最大数值为100是x轴最大数值的十倍,结果出来的图变成一个高宽比为10:1的坐标图。哪位大大能帮我解决这个问题,一定高分相送。
1。x轴从0~10
2。y轴从0~100
3。绘制10个点并连成曲线我开始是用折线图的,但是折线图的起点的X坐标不在坐标原点上。后来我用xy散点图,但是出来的图x轴和y轴的单位长度是一样的,也就是说Y轴最大数值为100是x轴最大数值的十倍,结果出来的图变成一个高宽比为10:1的坐标图。哪位大大能帮我解决这个问题,一定高分相送。
解决方案 »
- 怎样用文件路径获得文件的Position
- jrtp的问题。。
- 视类中如何操控对话框中的控件变量?
- 〓〓〓〓〓〓〓■关于 EDIT 框不响应 Ctrl+V 类快捷键的问题■〓〓〓〓〓〓〓◆◆高分相送◆◆
- 本人已经切分5个行窗口,要继续在第三个窗口再按列切分,变成两个列窗口,求教!
- 菜鸟问题:用textout可以在view中写字,可是如何将view中的字全部清除呢?
- 用directdraw实现屏幕抓图
- 在线程中用阻塞的方法读串口,怎样才能改为非阻塞的方式呢
- OnDraw() 与OnPaint()有什么区别?
- 怎样编程判断是硬盘还是光驱?
- 关于EnumJobs...枚举打印机任务的API详细用法!急求。
- 求教!:Visual C++ 编译错误 unexpected end of file while looking for precompiled header directive
VARIANT var;
CVcValueScale yScale;//纵坐标对象
CVcCategoryScale xScale;//横坐标对象
yScale = pChart->GetPlot().GetAxis(1,var).GetValueScale();
yScale.SetAuto(FALSE);
xScale = pChart->GetPlot().GetAxis(0,var).GetCategoryScale();
xScale.SetAuto(FALSE);
pChart->SetColumnCount(1);
pChart->SetRowCount(10);
for(i=0;i<11;i++)
{
pChart->SetRow(i+1);
CString strRowLabel;
strRowLabel.Format("%d",i+1);
pChart->SetRowLabel(strRowLabel);
}
pChart->SetColumn(1);
for (int j = 0; j <11 ; j++)//nDataCount
{
pChart->SetRow(j+1);
strData.Format("%.2f",data.m_fData[j]);
pChart->SetData(strData);
}
那个data是自定义的一个数据类。你可以定义为一个二位数组,存放点的坐标,然后画出来就行了。
#include "vcplot.h"
#include "vcaxisscale.h"
#include "vcvaluescale.h"
#include "vccategoryscale.h"
#include "vcdatagrid.h"BOOL mcfxsdtx::OnInitDialog()
{
CDialog::OnInitDialog();
m_chartsd.SetFootnoteText("测试mschart"); VARIANT var;
m_chartsd.GetPlot().GetAxis(1,var).GetValueScale().SetAuto(FALSE);
m_chartsd.GetPlot().GetAxis(0,var).GetCategoryScale().SetAuto(FALSE); CString sLabel; m_chartsd.SetColumnCount(1); //1个项目,1条曲线
m_chartsd.SetRowCount(10); //显示10个刻度
//设置坐标的
for(int i=0;i<10;i++)
{
m_chartsd.SetRow(i+1);
sLabel.Format("%d",i+1);
m_chartsd.SetRowLabel(sLabel);
}
m_chartsd.SetColumn(1);
// 以下代码段为给ms_chart控件绑定数据的代码
COleSafeArray saRet;
DWORD numElements[] = {10, 2}; // 10x2
saRet.Create(VT_R8, 2, numElements); // Create the safe-array...
// Initialize it with values...
long index[2];
double val; for(index[0]=0; index[0]<10; index[0]++)
{
index[1]=0;
val= index[0];
saRet.PutElement(index, &val); index[1]=1;
val = index[0] * index[0];
saRet.PutElement(index, &val);
} // Return the safe-array encapsulated in a VARIANT...
m_chartsd.SetChartData(saRet.Detach());
m_chartsd.Refresh();
return TRUE;
}