`

Anychart图表系列十之增值功能

 
阅读更多

本章的信息量可能会很大,而且会不断更新,标题说的“增值功能”由多个小功能组成,因为每个小功能内容都不多不能成篇,所以统一在本章介绍。

 

  •  右键菜单

以Flash效果渲染的图形,可以通过鼠标右键查看到右键菜单,默认的右键菜单功能包括:版本提示、另存为图片、另存为PDF和打印图表。

上图是默认的右键菜单样式,同时AnyChart提供了菜单的自定义配置。用户可以取消显示指定菜单项,也可以修改菜单的文字内容。

位于<settings>标签下的<context_menu>用于控制右键菜单,该标签支持以下属性用于控制是否显示指定菜单项。


 <context_menu>标签下包含三个子标签用于设置右键菜单的文字内容,具体代码如下

<?xml version="1.0" encoding="UTF-8"?>
<anychart>
  <settings>
    <context_menu version_info="false" about_anychart="false">
      <save_as_image_item_text><![CDATA[另存为图片 >>>]]></save_as_image_item_text>
      <print_chart_item_text><![CDATA[打印 >>>]]></print_chart_item_text>
      <save_as_pdf_item_text><![CDATA[导出PDF >>>]]></save_as_pdf_item_text>
    </context_menu>
  </settings>
</anychart>

 

  • 导出图片

在右键菜单的内容中讲到AnyChart菜单项支持导出图片,这是导出图片最简单的方式,不过很奇怪的是,这种方式似乎必须放在服务器上才有效,我从官方下载例子到本地,然后尝试导出无效,而在项目中图片的导出是正常的。当然,这种方式是默认的配置,开发人员还可以通过修改XML配置来自定义导出功能。

图片导出的标签是<settings>标签下的<image_export>,url属性表示导出图片时访问的页面,通过访问该页面的代码即可生成指定的图;其他属性一看就懂,不用解释了。

<?xml version="1.0" encoding="UTF-8"?>
<anychart>
  <settings>
    <image_export url="http://localhost/saveasimage/AnyChartPNGSaver.jsp" file_name="weekly_report" use_title_as_file_name="true" width="1024" height="800"/>
  </settings>
</anychart>
 AnyChart提供URL的形式来生成图片非常有意思,我仔细看了JSP的代码逻辑,其实JSP的作用就是通过java解析出base64字节流,然后通过response.getOutputStream().write(byte)将图片对象导出。(详细代码可参考官方示例
<%
  String contentType = request.getParameter("contentType");
  String fileName = request.getParameter("fileName");
  
  if (contentType != null && !contentType.equals(""))
	response.setContentType(request.getParameter("contentType")); 
  else
	response.setContentType("image/png"); 
  
  if (fileName != null && !fileName.equals("")) {
    response.setHeader("Content-Disposition", "attachment; filename=\""+request.getParameter("fileName")+"\"");
  }
  
  response.getOutputStream().write(decodeBase64(request.getParameter("file")));
%>
 另外AnyChart还提供了通过js执行图片保存的方法,用起来也非常简单(注:只有Flash图才能保存图片,HTML5无效)
<script type="text/javascript" language="javascript">
AnyChart.renderingType = anychart.RenderingType.FLASH_ONLY;
var chart = new AnyChart();
...
//保存图片
chart.saveAsImage();
</script>
 
  •  打印图片

打印图片也提供了js方法:chart.printChart(),执行该js后AnyChart会调用当前浏览器的打印功能执行图片打印,用法跟保存图片一样,这个不用多说。

另外可能有的项目会自己封装打印功能,即先显示一个打印预览页面,然后再打印页面的内容,因为如果是Flash图是无法再预览页面显示的,所以需要对图表进行一下转换,具体做法可以访问我另一篇文章《AnyChart-Flash图转IMG普通图的方法

 

  •  导出PDF

通过AnyChart导出PDF也是非常简单,AnyChart同样提供了XML配置来设置导出功能

<settings>
  <pdf_export url="http://www.anychart.com/products/anychart/saveas/pdf/PDFSaver.php" file_name="anychart.pdf" use_title_as_file_name="false" image_type="jpg" />
</settings>

 除此之外,AnyChart也支持通过javascript调用导出PDF操作:chart.saveAsPDF(),开发可以非常方便地调用。

 

  • 图动画Animation

AnyChart支持图动画效果(HTML5时赞不支持),并且动画效果非常丰富,用户可以随意配置自己喜欢的效果。

首先要开启动画效果,可按照下面配置显示一个默认的动画:

<?xml version="1.0" encoding="UTF-8"?>
<anychart>
  <settings>
    <animation enabled="True" />
  </settings>
</anychart>

动画效果影响范围分为三个级别:全局动画、series动画和point动画。

全局动画的属性只有三个 :


 

而series动画和point动画的属性基本一致,只是影响范围不同


 

下面给一个官方的例子,看下不同级别动画效果是如何出来的:

<?xml version="1.0" encoding="UTF-8"?>
<anychart>
  <settings>
    <animation enabled="true" />
  </settings>
  <charts>
    <chart>
      <data>
        <series name="Sales" type="Bar" palette="Default">
          <animation enabled="false" />
          <point name="2000" y="10000">
            <animation enabled="true" start_time="0" duration="1" start_angle="360" animate_opacity="False" />
          </point>
          <point name="2001" y="12000" />
          <point name="2002" y="18000">
            <animation enabled="true" start_time="2" duration="2" start_angle="360" animate_opacity="True" />
          </point>
          <point name="2003" y="11000">
            <animation enabled="true" start_time="1" duration="1" animate_opacity="True" />
          </point>
          <point name="2004" y="9000" />
        </series>
      </data>
      <chart_settings>
        <title enabled="false" />
        <axes>
          <y_axis>
            <title>
              <text>Sales</text>
            </title>
            <labels>
              <format>{%Value}{numDecimals:0}</format>
            </labels>
          </y_axis>
          <x_axis>
            <title>
              <text>Year</text>
            </title>
          </x_axis>
        </axes>
      </chart_settings>
    </chart>
  </charts>
</anychart>

 因为我只用了全局的动画,所以更详细的动画并未深究,大家想了解更多可以访问官方文档

 

  •  scale小配置

开发如果在数据很多的情况下可能会遇到两根甚至更多柱子占用一个背景格子的情况,最后导致的后果是point name在图中显示不全,如下图所示。


这个是有解决办法的,只需要在XML中设置一个这个标签即可解决问题。 

 

<x_axis>
<scale major_interval="1"/>
</x_axis>
 

 

  • 文字换行和省略

接上一张图,大家可以看到point name在过长的时候进行了换行,超过指定字数以“...”显示,这个配置也是支持的,看下面的XML,<labels>的width属性表示文字达到指定宽度则换行,rotation属性表示将文字旋转一定角度,而<format>标签下有一个内置变量maxChart则表示最多允许显示多少个问题,如果超出则将多余的以maxCharFinalChars的格式显示。

<x_axis>
  <labels enabled="true" width="5" rotation="90" display_mode="rotated" align="Inside">
    <format><![CDATA[{%Value}{maxChar:15,maxCharFinalChars:...}]]></format>
  </labels>
</x_axis>

 

  • 自定义颜色

AnyChart图表的各个部位都支持自定义颜色,不同部位需要不同的标签,配置颜色的属性都叫color,以最常见的自定义柱状图柱子颜色为例,可以在series中设置color属性,也可以在point中设置color,同时AnyChart支持多种颜色格式。具体图颜色可以参考官方提供的Color Table

<?xml version="1.0" encoding="UTF-8"?>
<anychart>
  <charts>
    <chart plot_type="CategorizedVertical">
      <data>
        <series name="Sales" type="Bar" color="#FF8C00">
          <point name="John" y="10000" color="Beige"/>
          <point name="Jake" y="12000" color="rgb(240,248,255)"/>
          <point name="Peter" y="18000" color="hsb(0,59,41)"/>
          <point name="James" y="11000" color="#00FFFF"/>
          <point name="Mary" y="9000" />
        </series>
      </data>
    </chart>
  </charts>
</anychart>

 

  • 图边框和边距

AnyChart默认有一个蓝色边框,这个边框是可以设置样式或者隐藏的,下面XML是隐藏蓝色边框,如果想了解更多,可参考官方文档

<chart_settings>
  <chart_background enabled="true">
    <border enabled="true">
      <fill enabled="false" />
    </border>
  </chart_background>
</chart_settings>

另外隐藏蓝色边框后,图的边距最好再调整一下,这样可以提高图的使用有效率:

<anychart>
  <margin all="-10"/>
</anychart>

 

  • 字体设置

AnyChart支持各个部位设置字体样式,跟自定义颜色类似,在很多主标签下都有一个<font>标签设置字体,而且属性也基本相同。我在项目中用得最多的是字体大小,下面是一个字体的属性设置。

<font family="Verdana" color="Black" size="12" bold="True" italic="False" underline="False" render_as_html="False" />

 除了通过属性调整字体样式以外,AnyChart还支持通过HTML标签设置字体样式,只要设置render_as_html属性为true,则可以在<format>中写HTML格式的内容

<label_settings>
  <font render_as_html="True" />
  <format><![CDATA[%cbegin <b>Name:</b> {%Name} %cend]]></format>
</label_settings>

 

 

  • 小数操作

AnyChart涉及到数字的地方都是默认保留两位小数,即使没有小数值也是以“x.00”的格式显示,这个是可以修改的。

针对这个问题可能需要用到两个内置变量:numDecimals和trailingZeros,numDecimals表示保留几位小数,trailingZeros:false表示如果有小数,但是小数位为0则不显示。合起来用就是这样的:{numDecimals:3,trailingZeros:false},这个意思是最多保留3位小数,如果值是3.11则显示效果就是3.11,如果值为3.110则显示效果还是3.11,如果值为3.1111则显示效果是3.111。

<axes>
  <y_axis>
    <labels>
      <format>{%Value}{numDecimals:3,trailingZeros:false}</format>
    </labels>
  </y_axis>
</axes>

 
 

 

  • 大小: 12.9 KB
  • 大小: 53.4 KB
  • 大小: 37.3 KB
  • 大小: 48.5 KB
  • 大小: 18.8 KB
  • 大小: 42.4 KB
分享到:
评论

相关推荐

    AnyChart图表个人总结

    AnyChart图表个人总结 AnyChart是一种先进的基于Flash的数据可视化解决方案,用于构建复杂报表的理想工具。它使用XML作为通用数据接口,使得我们能够从任何数据源中使数据可视化。AnyChart是完全跨浏览器和跨平台的...

    AnyChart图表控件的钻取功能演示

    NULL 博文链接:https://zhuhm.iteye.com/blog/1452059

    Anychart图表控件的XML配置说明

    Anychart XMLReference配置的文档说明,离线模式

    Iphone开发系列源码——图表和报表的统计功能

    Iphone开发系列源码——图表和报表的统计功能Iphone开发系列源码——图表和报表的统计功能Iphone开发系列源码——图表和报表的统计功能Iphone开发系列源码——图表和报表的统计功能Iphone开发系列源码——图表和报表...

    anyChart的api文档

    在数据可视化领域,anyChart是一个强大的JavaScript库,它提供了丰富的交互式图表功能,适用于Web应用程序。本篇文章将深入探讨anyChart的API文档,以及如何利用它来创建和定制各种图表。 **一、anyChart基础** ...

    Anychart API 帮助文档

    Anychart是一款强大的数据可视化工具,它提供了丰富的API接口,使得开发者可以轻松地在Web应用程序中集成交互式图表。这个“Anychart API 帮助文档”是开发者理解和使用Anychart API的重要资源,旨在提供详尽的指导...

    AnyChart6.2.0

    使用AnyChart控件,可创建跨浏览器和跨平台的交互式图表和仪表。AnyChart 图表目前已被很多知名大公司所使用,可用于仪表盘、报表、数据分析、统计学、金融等领域。 AnyChart 可以被用于Web、桌面和移动应用程序,...

    anychart简单java使用

    这些数据包含了图表所需的系列、数据点、轴信息、标签等元素,一旦XML生成并发送到前端,AnyChart会自动解析并绘制出相应的图表。 在文件列表中,我们看到一个名为"map.bin"的文件。这可能是一个二进制文件,通常...

    AnyChart 各种报表 分页

    AnyChart是一款强大的JavaScript图表库,它提供了丰富的图表类型和自定义选项,使得数据可视化变得简单且高效。本篇将深入探讨如何在Java环境中利用AnyChart创建各种报表,并实现无水印和分页功能。 首先,让我们...

    Anychart HTML5 去除水印的版本

    5. **交互性**:Anychart的图表是高度交互的,你可以添加鼠标悬停提示、点击事件、拖拽缩放等功能,提升用户体验。 6. **动画效果**:利用Anychart的动画API,你可以为图表的加载、更新等操作添加平滑的过渡效果。 ...

    不含水印的anychart简单demo

    在这个"不含水印的anychart简单demo"中,我们将探讨如何利用AnyChart的核心功能,通过仅使用anychart.js和anychart.swf这两个基础文件来构建一个简洁的图表示例。 首先,我们需要了解AnyChart的基本概念。AnyChart...

    无水印的anychart(依赖jar)

    这是一个Java库,包含了AnyChart的所有核心功能,包括图表的创建、数据绑定、交互式操作以及各种图表类型的实现。在Java项目中,我们可以通过添加这个JAR文件到类路径(classpath)来引入AnyChart的功能。这通常通过...

    anychart7.11.zip

    在7.11版本中,AnyChart进一步优化了性能,增加了更多功能,以满足更广泛的图表需求。 1. **跨平台特性** AnyChart支持多种操作系统,包括Windows、Mac OS、Linux等,同时兼容桌面和移动设备,无论是Web应用还是...

    Flex去除AnyChart水印

    - 修改SWF文件可能会影响图表的其他功能,因此修改后务必进行充分的测试。 - 如果是商业项目,建议购买正式许可证,以避免版权问题带来的风险。 #### 五、总结 通过上述方法,可以在不购买正式许可证的情况下,...

    C# 调用anychart 自动另存为图片

    AnyChart是一款强大的JavaScript图表库,它提供了丰富的图表类型和高度自定义的选项,适用于网页和移动应用的数据可视化。在某些场景下,我们可能需要将AnyChart生成的图表保存为图片,以便于分享或离线使用。本篇...

    EXCEL之图表系列课程(4) 动态图表

    本课程聚焦于“EXCEL之图表系列课程(4) 动态图表”,旨在帮助用户深入理解和掌握动态图表的创建和应用。 动态图表的核心在于利用数据筛选、切片器和时间序列等特性,以灵活展示大量数据的变化趋势和关系。以下将...

    最好的flash图表控件AnyChart的asp.net例子

    本篇文章将深入探讨如何在ASP.NET环境中集成并使用AnyChart,为Web应用程序添加动态且美观的图表功能。 首先,让我们了解AnyChart的核心特性。AnyChart支持多种图表类型,包括折线图、柱状图、饼图、散点图、热力图...

    Anychart 6.2.0

    Anychart是一款强大的数据可视化工具,专为开发者设计,用于创建互动式的、高质量的图表和图形。在6.2.0版本中,它显著提升了对HTML5的支持,使得图表不仅能在Flash环境中运行,还能无缝地在现代Web浏览器中运行,...

    【Anychart】自动保存flash图片到指定目录下。

    一旦图表绘制完成,Anychart提供了导出功能,可以将图表导出为不同的格式,包括图片(如PNG、JPEG)和PDF。 要实现自动保存图片到指定目录,我们需要编写一段脚本来触发这个过程。在JavaScript中,这通常涉及到监听...

Global site tag (gtag.js) - Google Analytics