gpt4 book ai didi

c++ - MFC TeeChart中绘制饼图

转载 作者:行者123 更新时间:2023-11-28 05:08:29 26 4
gpt4 key购买 nike

我的英文不是很好,请见谅。我已将数据成功添加到饼图中,但饼图不显示,控件中仅显示数据。

控件的属性似乎已正确配置。我不知道问题出在哪里,因为我花了整整一夜的时间。

BOOL CStatInfPieDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
char temp1[100];
char temp2[100];
CString str;
// TODO: Add extra initialization here
CSeries series = (CSeries)statInfPie.Series(0);
int size = stationInfList.size();
series.put_ColorEachPoint(true);
srand(time(NULL));
for (int i = 0; i < size; i++) {
sprintf(temp1, "%s/%d ", iptostr(stationInfList[i].netaddrA), toCidr(stationInfList[i].netmaskA));
sprintf(temp2, "%s/%d", iptostr(stationInfList[i].netaddrB), toCidr(stationInfList[i].netmaskB));
strcat(temp1, temp2);
str = CString(temp1);
series.Add(stationInfList[i].bcountAToB + stationInfList[i].bcountBToA, str, RGB(rand() % 255, rand() % 255, rand() % 255));
memcpy(temp1, "\0", sizeof(temp1));
memcpy(temp2, "\0", sizeof(temp2));
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}

上面的代码示例初始化我的对话框,其中包含 TeeChart 控件。我通过函数 Add() 添加数据。数组 temp1 和数组 temp2 是我的描述信息。编译并运行我的程序后,结果如下图所示。

enter image description here

最佳答案

TeeChart 尝试为长标签和图例腾出空间,自动减小饼图的直径。在这种情况下,结果是极端的;饼图没有半径。

这可以通过以下几种方式之一解决:最新版本的 TeeChart (AX) 包含一个名为 InsideSlice for PieMarks 的属性。即。TChart1.Series(0).asPie.PieMarks.InsideSlice = True

对于旧版本的 TeeChart,如果此属性不可用,您可以手动将 Arrowlength(标记的连接器)设置为负值:IE。 TChart1.Series(0).Marks.ArrowLength = -20

系列标记可以设置为呈现多行,占用更少的宽度:IE。 TChart1.Series(0).Marks.MultiLine = True

如果图表中的图例带有很长的标签,这也会对图表的可读性产生反作用。 Legend 可以设置为 Visible false 或告知不要调整图表系列(饼图)的大小以适合。IE。 TChart1.Legend.ResizeChart = False

或者可以定位在Pie下面IE。 TChart1.Legend.Alignment = laBottom

此处需要设计思想。显示长点值标签(系列标记)并重复图例中的某些信息会占用大量可以显示图表的工作空间。如果将图例放置在图表下方并且面板的大小相应调整并且可能使用不重复系列标记信息的信息(使用不同的图例文本样式)加上使用多行设置系列标记,与更短的 Arrowlength,那么整体结果应该非常可读。

关于c++ - MFC TeeChart中绘制饼图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44048232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com