📄 detreesvmview.cpp
字号:
pDC->LineTo(j+10,l);//画线
pDC->Ellipse(j+5,l-5,j+15,l+5);//画点
CString str;
int m=(int)(dRecall[i]*100+0.5);
str.Format("%d",m);
str = str + "%";
pDC->TextOut(j,(l-15),str);//输出查全率
str.Format("%d",(i+1));
str=str+"类";
pDC->TextOut(j+7,440,str);
}
pDC->TextOut(280,310,"查全率");
//画f1测试值对应的折线图
a = j+50;
pDC->MoveTo(a,point1.y);//初始点
for(i=0;i<KINDNUMBER;i++)
{
j=a+10+i*40;
l=point1.y-(int)(dF1[i]*150);
hP=CreatePen(PS_SOLID,1,RGB(0,0,0));
hBr=CreateSolidBrush(color[i]);
pDC->SelectObject(hBr);//设置画笔
pDC->SelectObject(hP);
pDC->LineTo(j+10,l);//画线
pDC->Ellipse(j+5,l-5,j+15,l+5);//画点
CString str;
str.Format("%.3lf",dF1[i]);
pDC->TextOut(j,(l-15),str);//输出F1测试值
str.Format("%d",(i+1));
str=str+"类";
pDC->TextOut(j+7,440,str);
}
pDC->TextOut(460,310,"F1测试值");
pDC->TextOut(600,280,"折线图表示分类器性能");
for(i=0;i<KINDNUMBER;i++)
{
j=318+35*i;
hBr=CreateSolidBrush(color[i]);
pDC->SelectObject(hBr);//设置画笔
pDC->Ellipse(650,j-5,660,j+5);
}
pDC->TextOut(670,310,"1教育类");
pDC->TextOut(670,345,"2娱乐类");
pDC->TextOut(670,380,"3时尚类");
pDC->TextOut(670,415,"4计算机类");
m_bCurve = TRUE;
this->ReleaseDC(pDC);
}
/********************************************************************
// 创建日期 : 2008-5-20 14:39:24
// 作 者 : 祝美莲<zml123818@163.com>
// 函数名称 : CDeTreeSVMView::OnRect
// 函数功能 : 画柱状图
// 返回类型 : void
********************************************************************/
void CDeTreeSVMView::OnRect()
{
// TODO: Add your command handler code here
//定义画笔画刷
HPEN hP;
HBRUSH hBr;
CFont font;
COLORREF color[4];
color[0]=RGB(220,20,60);
color[1]=RGB(255,0,255);
color[2]=RGB(255,255,0);
color[3]=RGB(0,250,154);
CDC *pDC=this->GetDC();
OnPrepareDC(pDC);
//画图
hP=(HPEN)GetStockObject(BLACK_PEN);
hBr=(HBRUSH)GetStockObject(DKGRAY_BRUSH);
pDC->SetTextColor(RGB(0,0,255));
font.CreateFont(14,7,0,0,0,FALSE,FALSE,0, ANSI_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,DEFAULT_PITCH | FF_SWISS,"宋体");
pDC->TextOut(300,10,"分类结果的图形表示");
pDC->SelectObject(&font);
pDC->SelectObject(hBr);
pDC->SelectObject(hP);
pDC->SetBkMode(TRANSPARENT);
//画坐标系
CPoint point1(55,230);
pDC->MoveTo(point1);
pDC->LineTo(600,point1.y);
pDC->MoveTo(point1);
pDC->LineTo(point1.x,55);
//画箭头
pDC->MoveTo((point1.x-5),60);
pDC->LineTo(point1.x,55);
pDC->MoveTo(point1.x,55);
pDC->LineTo((point1.x+5),60);
pDC->MoveTo(595,(point1.y+5));
pDC->LineTo(600,point1.y);
pDC->MoveTo(595,(point1.y-5));
pDC->LineTo(600,point1.y);
pDC->TextOut(600,235,"类别");
int i,j,k,l=0;
//画查准率对应的柱状图
for(i=0;i<KINDNUMBER;i++)
{
j=point1.x+20+i*35;
k=j+25;
l=point1.y-(int)(dPrecision[i]*150);
hBr=CreateSolidBrush(color[i]);
pDC->SelectObject(hBr);//设置画笔
pDC->Rectangle(j,point1.y,k,l);
CString str;
int m=(int)(dPrecision[i]*100+0.5);
str.Format("%d",m);
str = str +"%";
pDC->TextOut(j,(l-15),str);//输出查准率
str.Format("%d",(i+1));
str=str+"类";
pDC->TextOut(j,235,str);//输出类别
}
pDC->TextOut(100,48,"查准率");
//画查全率对应的柱状图
int a = k;
for(i=0;i<KINDNUMBER;i++)
{
j=a+40+i*35;
k=j+25;
l=point1.y-(int)(dRecall[i]*150);
hBr=CreateSolidBrush(color[i]);
pDC->SelectObject(hBr);//设置画笔
pDC->Rectangle(j,point1.y,k,l);//画矩形
CString str;
int m=(int)(dRecall[i]*100+0.5);
str.Format("%d",m);
str = str + "%";
pDC->TextOut(j,(l-15),str);//输出查全率
str.Format("%d",(i+1));
str=str+"类";
pDC->TextOut(j,235,str);//输出类别
}
pDC->TextOut(280,48,"查全率");
//画F1测试值对应的柱状图
a = k;
for(i=0;i<KINDNUMBER;i++)
{
j=a+40+i*40;
k=j+25;
l=point1.y-(int)(dF1[i]*150);
hBr=CreateSolidBrush(color[i]);
pDC->SelectObject(hBr);//设置画笔
pDC->Rectangle(j,point1.y,k,l);
CString str;
str.Format("%.3lf",dF1[i]);
pDC->TextOut((j-10),(l-15),str);//输出F1值
str.Format("%d",(i+1));
str=str+"类";
pDC->TextOut(j,235,str);//输出类别
}
pDC->TextOut(460,48,"F1测试值");
//输出
pDC->TextOut(600,55,"柱状图表示的分类器性能");
for(i=0;i<KINDNUMBER;i++)
{
j=110+35*i;
k=j-20;
hBr=CreateSolidBrush(color[i]);
pDC->SelectObject(hBr);//设置画笔
pDC->Rectangle(650,j,680,k);
}
pDC->TextOut(690,90,"1教育类");
pDC->TextOut(690,125,"2娱乐类");
pDC->TextOut(690,160,"3时尚类");
pDC->TextOut(690,195,"4计算机类");
m_bRect = TRUE;
this->ReleaseDC(pDC);
}
/********************************************************************
// 创建日期 : 2008-5-21 8:39:17
// 作 者 : 祝美莲<zml123818@163.com>
// 函数名称 : CDeTreeSVMView::OnUpdateRect
// 函数功能 : 判断是否有"result.txt"文件,设置按钮的状态
// 返回类型 : void
// 函数参数 : CCmdUI* pCmdUI
********************************************************************/
void CDeTreeSVMView::OnUpdateRect(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CString strFileName;
strFileName = pPath;
strFileName+="\\result.txt";
CFile mFile;
//判断是否有“result.txt”文件
if(mFile.Open(strFileName,CFile::modeRead)==0)
{
pCmdUI->Enable(0);
}
else
{
pCmdUI->Enable();
}
}
/********************************************************************
// 创建日期 : 2008-5-21 8:38:54
// 作 者 : 祝美莲<zml123818@163.com>
// 函数名称 : CDeTreeSVMView::OnUpdateCurve
// 函数功能 : 判断是否有"result.txt"文件,设置按钮的状态
// 返回类型 : void
// 函数参数 : CCmdUI* pCmdUI
********************************************************************/
void CDeTreeSVMView::OnUpdateCurve(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CString strFileName;
strFileName = pPath;
strFileName+="\\result.txt";
CFile mFile;
//判断是否有“result.txt”文件
if(mFile.Open(strFileName,CFile::modeRead)==0)
pCmdUI->Enable(0);//禁用该项
else
pCmdUI->Enable();//使该项使能
}
/********************************************************************
// 创建日期 : 2008-6-1 8:23:43
// 作 者 : 祝美莲<zml123818@163.com>
// 函数名称 : CDeTreeSVMView::OnPrepareDC
// 函数功能 : 更新DC
// 返回类型 : void
// 函数参数 : CDC* pDC
// 函数参数 : CPrintInfo* pInfo
********************************************************************/
void CDeTreeSVMView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
// TODO: Add your specialized code here and/or call the base class
CScrollView::OnPrepareDC(pDC, pInfo);
}
/********************************************************************
// 创建日期 : 2008-6-4 10:01:01
// 作 者 : 祝美莲<zml123818@163.com>
// 函数名称 : CDeTreeSVMView::OnClean
// 函数功能 : 清空屏幕上原有的图形
// 返回类型 : void
********************************************************************/
void CDeTreeSVMView::OnClean()
{
// TODO: Add your command handler code here
m_bCurve = FALSE;//不画线
m_bRect = FALSE;
Invalidate();//重画窗口
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -