彩票走势图

Web图表控件ChartDirector使用教程:自定义数据点标签

原创|使用教程|编辑:郝浩|2013-03-14 14:39:08.000|阅读 917 次

概述:本示例演示如何在Web图表控件ChartDirector绘制的散点图上加上自定义标签。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

为图表上的数据点加上标签,可以起到注释的作用,能提高图表的可读性。本示例就为你演示如何在Web图表控件ChartDirector绘制的散点图上加上自定义标签

主要有以下几个步骤:

  • 本例中的红色玻璃球来自一个散射层,由 XYChart.addScatterLayer创建
  • 自定义标签放在一个数组变量中,用Layer.addExtraField将标签作为图表的附加字段
  • Layer.setDataLabelFormat设置数据标签格式,并显示附加字段
  • 用Layer.setDataLabelStyle将数据标签的字体设置为8磅大小的Arial Bold字体
  • Layer.setDataLabelStyle返回一个TextBox对象,表示数据标签的原型。在本例中,TextBox对象用于自定义数据标签的背景颜色、3D边框、位置移动和对齐。

散点图上的数据点标签:

散点图上的数据点标签,在Web图表控件ChartDirector绘制的散点图上加上自定义标签

在ChartDirector图表上自定义数据点标签源代码:

#include "chartdir.h"

int main(int argc, char *argv[])
{
    // The XY points for the scatter chart
    double dataX[] = {150, 400, 300, 1500, 800};
    double dataY[] = {0.6, 8, 5.4, 2, 4};

    // The labels for the points
    const char *labels[] = {"Nano\n100", "SpeedTron\n200 Lite", "SpeedTron\n200",
        "Marathon\nExtra", "Marathon\n2000"};

    // Create a XYChart object of size 450 x 400 pixels
    XYChart *c = new XYChart(450, 400);

    // Set the plotarea at (55, 40) and of size 350 x 300 pixels, with a light grey
    // border (0xc0c0c0). Turn on both horizontal and vertical grid lines with light
    // grey color (0xc0c0c0)
    c->setPlotArea(55, 40, 350, 300, 0xffffff, -1, 0xc0c0c0, 0xc0c0c0, -1);

    // Add a title to the chart using 18 pts Times Bold Itatic font.
    c->addTitle("Product Comparison Chart", "timesbi.ttf", 18);

    // Add a title to the y axis using 12 pts Arial Bold Italic font
    c->yAxis()->setTitle("Capacity (tons)", "arialbi.ttf", 12);

    // Add a title to the x axis using 12 pts Arial Bold Italic font
    c->xAxis()->setTitle("Range (miles)", "arialbi.ttf", 12);

    // Set the axes line width to 3 pixels
    c->xAxis()->setWidth(3);
    c->yAxis()->setWidth(3);

    // Add the data as a scatter chart layer, using a 15 pixel circle as the symbol
    ScatterLayer *layer = c->addScatterLayer(DoubleArray(dataX, (int)(sizeof(dataX) /
        sizeof(dataX[0]))), DoubleArray(dataY, (int)(sizeof(dataY) / sizeof(dataY[0])
        )), "", Chart::GlassSphereShape, 15, 0xff3333, 0xff3333);

    // Add labels to the chart as an extra field
    layer->addExtraField(StringArray(labels, (int)(sizeof(labels) / sizeof(labels[0])
        )));

    // Set the data label format to display the extra field
    layer->setDataLabelFormat("{field0}");

    // Use 8pts Arial Bold to display the labels
    TextBox *textbox = layer->setDataLabelStyle("arialbd.ttf", 8);

    // Set the background to purple with a 1 pixel 3D border
    textbox->setBackground(0xcc99ff, Chart::Transparent, 1);

    // Put the text box 4 pixels to the right of the data point
    textbox->setAlignment(Chart::Left);
    textbox->setPos(4, 0);

    // Output the chart
    c->makeChart("scatterlabels.png");

    //free up resources
    delete c;
    return 0;
}

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:慧都控件

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP