wxFreeChart图表库介绍

在现代软件开发中,数据可视化是一个重要的组成部分。wxFreeChart是一个强大的图表库,它提供了丰富的图表类型和灵活的数据源集成方式。它使用模型-视图-控制器(Model-View-Controller, MVC)模式,使得数据的表示和处理分离,从而提高了代码的可维护性和可扩展性。

图表类型支持

wxFreeChart支持多种图表类型,包括但不限于:

  • 折线图(Line XY charts)
  • 直方图(Histogram XY charts)
  • 区域图(Area XY charts)
  • 条形图(Bar charts)
  • 堆叠条形图(Stacked bar charts)
  • 分层条形图(Layered bar charts)
  • OHLC条形金融图表(OHLC bars financial charts)
  • OHLC蜡烛图金融图表(OHLC candlesticks financial charts)
  • 气泡图(Bubble charts)
  • 甘特图(Gantt charts)

特性

wxFreeChart提供了以下特性:

  • 标记(Markers)
  • 十字准线(Crosshair)
  • 动态图表(Dynamic charts)
  • 无限数量的轴(Unlimited amount of axes)
  • 渐变背景和条形(Gradient backgrounds and bars)
  • 图例(Legend)
  • 根据各种条件控制条形和蜡烛图的颜色(Bars and candlestick colors can be controlled by various conditions)
  • 图表的缩放和平移(Zoom and pan for charts)

设计概念

wxFreeChart的设计基于以下几个主要概念:

  • 数据集(Dataset)
  • 渲染器(Renderer)
  • 轴(Axis)
  • 绘图(Plot)
  • 图表(Chart)
  • 图表面板(wxChartPanel)

数据集是数据访问接口,它是MVC模式中的模型部分。它不直接持有数据,而是定义了数据接口。有多种实现方式,如果现有的实现不满足需求,可以编写自己的数据集实现。数据集的类型包括:

  • XY数据集(XYDataset):基于XY坐标的图表数据。
  • 类别数据集(CategoryDataset):适用于一个轴上有数字/字符串信息,另一个轴上有字符串信息的图表,以及饼图。
  • OHLC数据集(OHLCDataset):适用于金融报价图表。
  • XYZ数据集(XYZDataset):适用于气泡图。

渲染器是执行数据绘制的对象。对于一种数据集类型,可以有多个渲染器。例如,XY数据集可以渲染为线条、直方图或区域图,OHLC数据集可以绘制为条形图或蜡烛图。渲染器的类型包括:

  • XY渲染器(XYRenderer):用于绘制XY数据。
  • 条形渲染器(BarRenderer):用于绘制条形图:普通、堆叠、分层。
  • OHLC渲染器(OHLCRenderer):用于绘制金融报价数据。
  • XYZ数据集渲染器(XYZDataset Renderer):用于绘制XYZ数据。

轴是执行数据缩放和轴渲染的对象。轴的类型包括:

  • 数字轴(NumberAxis):用于显示数字标签和缩放数字数据。
  • 类别轴(CategoryAxis):用于字符串标签。
  • 日期轴(DateAxis):用于日期/时间标签。
  • 复合日期轴(CompDateAxis):用于日期/时间标签的间隔轴。

绘图是连接轴、数据集、视觉对象(标记、十字准线)的对象。它包含标题、背景等。

图表包含标题、绘图等。

  • 标记(Markers):用于标记数据值和/或区间。标记与数据集相关联。标记类型包括:
    • 点标记(Point marker):标记单个点值。
    • 线标记(Line marker):用于标记指定值作为线。
    • 范围标记(Range marker):用于标记指定值范围。
  • 区域绘制(Area draws):执行绘制背景(绘图、图表)、条形图中的条形、图例符号等的对象。区域绘制有两种类型:填充和渐变。
  • 图例(Legend):绘制图例符号和系列名称。它在绘图中有位置,用于绘制标签的字体等。图例可以是垂直的或水平的。
  • 轴共享(AxisShare):辅助对象,使得创建组合轴绘图成为可能。
  • 多绘图(Multiplot):一种特殊的绘图,包含多个子图。它用于
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485