图表篇——Xml To Chart (折线图3D)

前言

一个实现Xml To Chart的图表引擎,通过Xml配置就能够呈现相应的图表。而且能够方便集成到所需的软件系统,例如,MyReport报表引擎

效果图

效果图

XML定义说明

<!-- 图表根节点。type属性:图表类型 -->

<ChartSettings type="Line3D">

  <!-- 名称,不影响报表显示 -->

  <Name>折线图3D</Name>

  <!-- 宽度 -->

  <Width>400</Width>

  <!-- 高度 -->

  <Height>300</Height>

  <!-- 左边距 -->

  <PaddingLeft>8</PaddingLeft>

  <!-- 右边距 -->

  <PaddingRight>8</PaddingRight>

  <!-- 上边距 -->

  <PaddingTop>8</PaddingTop>

  <!-- 下边距 -->

  <PaddingBottom>8</PaddingBottom>

  <!-- 内部子元件间距 -->

  <Gap>2</Gap>

  <!-- 前背景色 -->

  <BeginBackgroundColor>#ffffff</BeginBackgroundColor>

  <!-- 后背景色 -->

  <EndBackgroundColor>#f1f1f1</EndBackgroundColor>

  <!-- 边框颜色 -->

  <BorderColor>#696969</BorderColor>

  <!-- 显示标题 -->

  <TitleVisible>true</TitleVisible>

  <!-- 标题内容 -->

  <Title>折线图3D主标题</Title>

  <!-- 标题文本颜色 -->

  <TitleTextColor>#000000</TitleTextColor>

  <!-- 标题字体大小 -->

  <TitleFontSize>16</TitleFontSize>

  <!-- 标题字体加粗 -->

  <TitleFontBold>true</TitleFontBold>

  <!-- 显示副标题 -->

  <SubtitleVisible>true</SubtitleVisible>

  <!-- 副标题内容 -->

  <Subtitle>副标题</Subtitle>

  <!-- 副标题文本颜色 -->

  <SubtitleTextColor>#000000</SubtitleTextColor>

  <!-- 副标题字体大小 -->

  <SubtitleFontSize>12</SubtitleFontSize>

  <!-- 副标题字体加粗 -->

  <SubtitleFontBold>false</SubtitleFontBold>

  <!-- 设置 -->

  <Settings>

    <!-- 纵表变横表:数据行数等于KeyField所在的序列Value的个数 -->

    <Setting name="KeyField">ID</Setting>

    <!-- 纵表变横表:把序列组成横表,列名用','分割 -->

    <Setting name="Fields">Name, Value</Setting>

    <!-- 画布 -->

    <!-- 画布宽度 -->

    <Setting name="CanvasWidth">400</Setting>

    <!-- 画布高度 -->

    <Setting name="CanvasHeight">260</Setting>

    <!-- 画布背景颜色 -->

    <Setting name="CanvasBackgroundColor">#DDE3D5</Setting>

    <!-- 画布背景透明度 -->

    <Setting name="CanvasBackgroundAlpha">1</Setting>

    <!-- 画布底栏颜色 -->

    <Setting name="CanvasBarColor">#ACBB99</Setting>

    <!-- 画布底栏透明度 -->

    <Setting name="CanvasBarAlpha">1</Setting>

    <!-- 画布线条宽度 -->

    <Setting name="CanvasLineThickness">1</Setting>

    <!-- 画布线条颜色 -->

    <Setting name="CanvasLineColor">#ACBB99</Setting>

    <!-- 画布线条透明度 -->

    <Setting name="CanvasLineAlpha">1</Setting>

    <!-- 轴名称文本颜色 -->

    <Setting name="AxisNameTextColor">#000000</Setting>

    <!-- 轴名称字体大小 -->

    <Setting name="AxisNameFontSize">10</Setting>

    <!-- 轴名称字体加粗 -->

    <Setting name="AxisNameFontBold">true</Setting>

    <!-- X轴名称 -->

    <Setting name="XAxisName">X</Setting>

    <!-- Y轴名称 -->

    <Setting name="YAxisName">Y</Setting>

    <!-- 轴标签文本颜色 -->

    <Setting name="AxisLabelTextColor">#000000</Setting>

    <!-- 轴标签字体大小 -->

    <Setting name="AxisLabelFontSize">10</Setting>

    <!-- 轴标签字体加粗 -->

    <Setting name="AxisLabelFontBold">false</Setting>

    <!-- Y轴最大值 -->

    <Setting name="YAxisMaxValue">100</Setting>

    <!-- Y轴最小值 -->

    <Setting name="YAxisMinValue">-100</Setting>

    <!-- Y轴分割值 -->

    <Setting name="YAxisDivideValues">-50,50</Setting>

    <!-- Y轴标签表达式 -->

    <Setting name="YAxisLabelExpression"><![CDATA[=Current()]]></Setting>

    <!-- X轴标签表达式 -->

    <Setting name="XAxisLabelExpression"><![CDATA[=Fields!Name.Value]]></Setting>

    <!-- 线条宽度 -->

    <Setting name="LineThickness">2</Setting>

    <!-- 折线值表达式 -->

    <Setting name="LineValueExpression"><![CDATA[=Fields!Value.Value]]></Setting>

    <!-- 显示折线标签 -->

    <Setting name="LineLabelVisible">true</Setting>

    <!-- 折线标签文本颜色 -->

    <Setting name="LineLabelTextColor">#000000</Setting>

    <!-- 折线标签字体大小 -->

    <Setting name="LineLabelFontSize">11</Setting>

    <!-- 折线标签字体加粗 -->

    <Setting name="LineLabelFontBold">false</Setting>

    <!-- 折线标签表达式 -->

    <Setting name="LineLabelExpression"><![CDATA[=Fields!Value.Value]]></Setting>

  </Settings>

  <!-- 图表数据源 -->

  <DataSource>

    <!-- 数据序列集合 -->

    <Serieses>

      <!-- 数据序列。name属性:序列名称;Value子节点:序列值 -->

      <Series name="ID">

        <Value>1</Value>

        <Value>2</Value>

        <Value>3</Value>

        <Value>4</Value>

        <Value>5</Value>

        <Value>6</Value>

      </Series>

      <!-- 数据序列。name属性:序列名称;Value子节点:序列值 -->

      <Series name="Name">

        <Value>1</Value>

        <Value>2</Value>

        <Value>3</Value>

        <Value>4</Value>

        <Value>5</Value>

        <Value>6</Value>

      </Series>

      <!-- 数据序列。name属性:序列名称;Value子节点:序列值 -->

      <Series name="Value">

        <Value>10.5</Value>

        <Value>50</Value>

        <Value>-20.5</Value>

        <Value>16</Value>

        <Value>70</Value>

        <Value>-10.5</Value>

      </Series>

    </Serieses>

  </DataSource>

</ChartSettings>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 Android 中绘制折线图,可以使用 Android 提供的图表库或第三方库。 以下是使用 Android 提供的图表库来绘制折线图的步骤: 1. 在 XML 布局文件中添加一个 `LineChart` 控件。 ```xml <com.github.mikephil.charting.charts.LineChart android:id="@+id/line_chart" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 在代码中获取 `LineChart` 控件,并设置数据。 ```java LineChart lineChart = findViewById(R.id.line_chart); List<Entry> entries = new ArrayList<>(); entries.add(new Entry(1, 10)); entries.add(new Entry(2, 20)); entries.add(new Entry(3, 30)); entries.add(new Entry(4, 40)); entries.add(new Entry(5, 50)); LineDataSet dataSet = new LineDataSet(entries, "Label"); LineData lineData = new LineData(dataSet); lineChart.setData(lineData); ``` 3. 可以通过设置 `LineChart` 的属性来自定义折线图的样式,例如: ```java lineChart.getDescription().setEnabled(false); lineChart.setTouchEnabled(true); lineChart.setDragEnabled(true); lineChart.setScaleEnabled(true); lineChart.setDrawGridBackground(false); lineChart.setPinchZoom(true); lineChart.getLegend().setEnabled(false); XAxis xAxis = lineChart.getXAxis(); xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); xAxis.setDrawGridLines(false); YAxis leftAxis = lineChart.getAxisLeft(); leftAxis.setDrawGridLines(false); YAxis rightAxis = lineChart.getAxisRight(); rightAxis.setEnabled(false); ``` 以上是使用 Android 提供的图表库来绘制折线图的基本步骤和样式设置,需要注意的是,这只是一个简单的例子,实际应用中还需要根据实际需求进行更加复杂的配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值