首先看一下如何在arcgis中制作树状图和饼状图【ArcGIS教程】(95)如何在ArcGIS中制作柱状图与饼状图? - 知乎

Arcgis Engine实现方式:

1.无论是树状图,饼状图,条形图还是堆叠图都是由ChartRenderer类实现的,该类实现IChartRenderer接口。

2.BaseSymbol属性用来设置或返回统计图表的符号。

3.ChartSymbol用来设置或返回统计图表的样式。ChartSymbol可以生成不同的图表,当IChartRenderer的接口ChartSymbol设置为BarChartSymbol PieChartSymbol分别代表壮壮图和饼状图。

4.IChartSymbol中MAxValue设置统计中的最大值

5.ImarkSymbol设置统计图表形状的最大值,柱状图中则表示最大值的最大高度。

实例代码实现思路如下

1.遍历出所选第一个字段的属性值的最大值,并将其赋值给.IChartSymbol中MAxValue,作为统计图大小的依据。

2.根据不同选择生成对应的图表。

效果图:柱状图

效果图:饼状图

代码:

        /// <summary>/// 图表/// </summary>/// <param name="pFeatLyr">渲染图层</param>/// <param name="_dicFieldAndColor">储存渲染字段和其对应的颜色</param> private void ChartRenderer(IFeatureLayer pFeatLyr, Dictionary<string, IRgbColor> dicFieldAndColor){IGeoFeatureLayer pGeoFeatLyr = pFeatLyr as IGeoFeatureLayer;IChartRenderer pChartRender = new ChartRendererClass();IRendererFields pRenderFields = pChartRender as IRendererFields;IFeatureCursor pCursor = null;IDataStatistics pDataSta = null;double dMax = 0; double dTemp = 0;IQueryFilter pQueryFilter = new QueryFilterClass();pCursor = pGeoFeatLyr.Search(pQueryFilter, true);//遍历出所选择的第一个字段的最大值,,作为设置专题图的比例大小的依据foreach (KeyValuePair<string, IRgbColor> _keyValue in dicFieldAndColor){pRenderFields.AddField(_keyValue.Key, _keyValue.Key);pDataSta = new DataStatisticsClass();pDataSta.Cursor = pCursor as ICursor;pDataSta.Field = _keyValue.Key;dTemp = pDataSta.Statistics.Maximum;if (dTemp >= dMax){dMax = dTemp;}}IRgbColor pRgbColor = null;IChartSymbol pChartSym = null;IFillSymbol pFillSymbol = null;IMarkerSymbol pMarkerSym = null;IBarChartSymbol pBarChartSym = null;IPieChartSymbol pPieChartSymbol = null;IStackedChartSymbol pStackChartSym = null;// 定义并设置渲染样式switch (_enumChartType){case EnumChartRenderType.PieChart:pPieChartSymbol = new PieChartSymbolClass();pPieChartSymbol.Clockwise = true;//说明饼图是否顺时针方向pPieChartSymbol.UseOutline = true;//说明是否使用轮廓线ILineSymbol pLineSym = new SimpleLineSymbolClass();pLineSym.Color = m_OperateMap.GetRgbColor(100, 205, 30) as IColor;pLineSym.Width = 1;pPieChartSymbol.Outline = pLineSym;break;case EnumChartRenderType.BarChart:pBarChartSym = new BarChartSymbolClass();pBarChartSym.Width = 6;//设置每个条形图的宽度break;case EnumChartRenderType.StackChart:pStackChartSym = new StackedChartSymbolClass();pStackChartSym.Width = 6;//设置每个堆叠图的宽度break;}if (pPieChartSymbol != null){pChartSym = pPieChartSymbol as IChartSymbol;pMarkerSym = pPieChartSymbol as IMarkerSymbol;pMarkerSym.Size = 30; //设置饼状图的大小}if (pBarChartSym != null){pChartSym = pBarChartSym as IChartSymbol;pMarkerSym = pBarChartSym as IMarkerSymbol;pMarkerSym.Size = 30;//设置条形图的高度}else if (pStackChartSym != null){pChartSym = pStackChartSym as IChartSymbol;pMarkerSym = pStackChartSym as IMarkerSymbol;pMarkerSym.Size = 30;//设置堆叠图的高度}pChartSym.MaxValue = dMax;ISymbolArray pSymArray = null;if (pBarChartSym != null){pSymArray = pBarChartSym as ISymbolArray;}else if (pStackChartSym != null){pSymArray = pStackChartSym as ISymbolArray;}else if (pPieChartSymbol != null){pSymArray = pPieChartSymbol as ISymbolArray;}foreach (KeyValuePair<string, IRgbColor> _keyValue in dicFieldAndColor){//获取渲染字段的颜色值pRgbColor = _keyValue.Value;pFillSymbol = new SimpleFillSymbolClass();pFillSymbol.Color = pRgbColor as IColor;pSymArray.AddSymbol(pFillSymbol as ISymbol);}if (pPieChartSymbol != null){pChartRender.ChartSymbol = pPieChartSymbol as IChartSymbol;}if (pBarChartSym != null){pChartRender.ChartSymbol = pBarChartSym as IChartSymbol;}else if (pStackChartSym != null){pChartRender.ChartSymbol = pStackChartSym as IChartSymbol;}pFillSymbol = new SimpleFillSymbolClass();pFillSymbol.Color = m_OperateMap.GetRgbColor(239, 228, 190);pChartRender.BaseSymbol = pFillSymbol as ISymbol;// 设置背景符号//让符号处于图形中央(若渲染的图层为点图层,则该句应去掉,否则不显示渲染结果)pChartRender.UseOverposter = false; pChartRender.CreateLegend();pGeoFeatLyr.Renderer = pChartRender as IFeatureRenderer;mainMapControl.Refresh();           mainTOCControl.Update();_enumChartType = EnumChartRenderType.UnKnown;}

ArcGis Engine 专题地图制图统计图表符号化(柱状图,饼状图)相关推荐

  1. java excel 饼图,java 导入导出excle 和 生成柱状图饼状图的demo/excle数据如何转成饼状图...

    在EXCEL中,如何把表格中的数据转换成饼状图? 在Excel中,把中的数据转换状图的操作步骤如下: 想转换的数据源,插入饼状图,Excel会自动根据选择的数据源生成饼状图.接下来,可以自定义饼状图的 ...

  2. Word中插入表格与柱状图饼状图技术经验分享

    最近公司一个项目里要求自动生成报告功能,研究了1周多,主要实现方式是通过调用微软Office COM组件来实现操作word文档,生成段落,表格,及各种图表. 本人发现操作word地方也有几个坑人的地方 ...

  3. Superset 制作 地图 柱状图 饼状图

    文章目录 制作地图 制作柱状图 制作饼状图 制作地图 1)创建 Chart 2)配置 Chart 3)结果图 制作柱状图 1)创建 Chart 2)配置 Chart 3)结果图 制作饼状图 1)创建 ...

  4. java实现将数据生成图表至excel导出(包括折线图,柱状图,饼状图)

    1. 目的 根据已有数据,手动(java后台)生成图表至excel并导出.用于后台查询到数据后直接创建图表,可以代替直接使用图表信息字符串. 2. 说明 使用jfree图表绘制类库绘制图表,并生成到本 ...

  5. poi导出excel文件,并生成原生图表(包括折线图,柱状图,饼状图,面积图)

    前段时间,因为客户需要,要做一个导出excel文件功能,并能生成原生的图表的(不是把图片插入到excel文档),找了很多文档看,也看了很多别人的代码,个人也总结了一下,不足之处,请各位大牛谅解. 需要 ...

  6. Echarst柱状图+饼状图+vue2 商品案例

    最终效果展示: echarst非常简单,就是使用的数据需要按照规定的格式,往往是获取数据较难 首先前端,只需要一个div,用ref指定名称,定好宽高,就ok,div多大,图就会自适应多大 <di ...

  7. mysql 柱状图统计_js/jquery 进行动态统计 各种柱状图 饼状图 线条图 等

    1.简单示例1 线条图 $(document).ready(function(){ var plot1 = $.jqplot ('chart1', [[3,7,9,1,4,6,8,2,5]]); }) ...

  8. matlab柱状斜线_Matlab:柱状图饼状图填充不同条纹

    下面就是重点:如何把上述图像转换成黑白图像,并填充不同条纹. 首先,创建名为"applyhatch.m"的函数脚本. 在同一路径下. 代码如下:--复制即可. function a ...

  9. 动态绘制柱状图饼状图

    http://www.cnblogs.com/haian/archive/2009/12/08/1619751.html 转载于:https://www.cnblogs.com/modernsky20 ...

最新文章

  1. log4cxx第三篇----使用多个logger
  2. pandas为dataframe所有的列名称名添加前缀(add_prefix)
  3. String字符串类的获取功能
  4. Java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
  5. 云计算呼叫中心_SaaS云呼叫中心系统只用于销售或客服?
  6. 微软CEO纳德拉开讲,2016微软开发者峰会在京召开
  7. 导出合并小文件_关于微信语音导出,这个方法强烈建议~
  8. python内存技巧_使用__slots__节省python内存技巧
  9. 基于JAVA开发的在线双人联机坦克大战小游戏
  10. 版人人商城V3.7.6开源解密版小程序前端+后端+安装使用视频教程
  11. ADB 环境变量配置教学
  12. Qt编写输入法V2019终极版
  13. 上门洗车APP开发的功能
  14. JPEG文件中默认Huffman表说明
  15. 用电脑“自动生成”的图书
  16. 【附源码】计算机毕业设计SSM校园流浪猫关爱系统
  17. 小技巧---笔记本外接显示器设置全屏壁纸
  18. java 事件链_供应链攻击事件——针对Github中Java项目的定向攻击
  19. Android measure方法详解
  20. python读取odb_如何使用python脚本更新Abaqus odb文件的节点值?

热门文章

  1. carla Engine crash handling finished; re-raising signal 11 for the default handler. Good bye.
  2. Kubernetes存活探针和就绪探针的最佳实践
  3. wifi 中间人攻击_公共wifi下的中间人攻击
  4. 微信图片,此图片来自微信公众平台未经允许不可引用解决方案
  5. excel怎样修改表格时间和计算机一制,Excel表格中如何自动生成记录数据的日期和时间...
  6. SQL按姓氏笔画排序
  7. 学习笔记 JavaScript 动画 加速
  8. 华为cpe虚拟服务器,华为5G CPE Pro:让你不用换手机就能体验5G网络
  9. 快排优化代码__2018.07.26
  10. 推荐系统论文:DKN Deep Knowledge-Aware Network for News Recommendation