艺术统计图表绘制方法(六叶形图)

news2024/11/24 20:54:29

艺术统计图表绘制方法(六叶形图)
在网络科技发展进步的当下,原来一些传统的统计图表都有了进一步的创新。以前企业的PPT都依赖微软的各应用软件来制作图表,现时企业的PPT展示的图表应用不再满足于Excle,Word等的图表绘制方法,进而使用一些第三方应用软件来制作新颖漂亮的图表。由此而有许多图表制作的应用软件面市。这些图表很吸引眼球,我对此也很感兴趣,故试着写了一些各种式样图表的绘制方法,供有同好的同行参考和评论。

新样式的统计图除了有复合式,堆叠式,展开式等等,还加入了新的概念,新的形式。新的名称是信息图表,把各种需要表达的东西,如理念含义,样本值的数量,统计的目的,多重信息等等用图像图表图案组合起来,展现给受众。此类信息图主要是表达,展示和传播。在美工艺术方面创意创新,有许多独到新颖的样式,给人一个赏心悦目的感受。

在统计图表的样本值的计算方面,样本值的量的表现是一个方面,重点是量的对比,以及量的表现方法,这是体现统计图表目的的主要意义。
今在此提供一种新颖漂亮的统计图的绘制方法供参考。

本方法采用C语言的最基本功能:
( 1) 绘图功能画线,画圆,画长方形。
(2) 界面美工设计,界面文字打印输出。
代码中有详细的注释,通俗易懂,一看就会。

550de12a87b0431cba6469596ac47c86.png 


//*************************  
ArtGraphics6 (){  //艺术统计图:六叶形艺术图
      cs.ClearDraw (0,src);   //清屏
      clearOutput();
      selectStyle () ; //图例样式选项设置
      cs.SetFillMode (1);//0不填色,1填色
         cs.SetColor (255,250,250,250);
      cs.DrawRect (0,4,720,600);   //back board
         cs.SetColor (255,140,140,140);
      cs.DrawRect (24,24,706,586);   //back      
         cs.SetColor (255,220,250,250);
      cs.DrawRect (20,20,700,580);   //back 
      cs.SetFillMode (0);//0不填色,1填色
         cs.SetColor (255,0,0,250);
      cs.DrawRect (20,20,700,580);   //back 
      cs.DrawRect (26,25,694,575);   //back 
 
  //艺术统计图样例: 图例 (六叶图形艺术图)
     cs.SetFillMode (1);//0不填色,1填色
            dx=360;  dy=260 ;   //center
         cs.SetColor (255,250,200,230);
      cs.DrawRect (50,80,150,310);   //样本值标底
          cs.SetStrokeWidth(2);    //线
          cs.SetTextStyle (0);  //1 粗体字
  
 //图例样本值:input data   
   p1[1]=4500; p1[2]=2000; p1[3]=900; p1[4]=600;  
   p1[5]=1200; p1[6]=800;    //部门 10000
        k[0]=180;     //k=180,12点钟方向为0位
                              //k=0, 3点钟方向为0位
        k[1]=k[0]+p1[1] ;   
        k[2]=k[1]+p1[2] ;   
        k[3]=k[2]+p1[3] ;
        k[4]=k[3]+p1[4] ;         
        k[5]=k[4]+p1[5] ;
        k[6]=k[5]+p1[6] ;

 //绘制六叶形信息图表:
           cs.SetStrokeWidth(1);    //线
           dx=360;  dy=260 ;   r=140 ;  //center,  radius
           cs.SetColor(255,200,200,250);  
        cs.DrawCircle (dx, dy, 150);      //圆底色
  
              dx=360 ;  dy=260 ;  r=140 ;
     for (n=1; n<=6 ; n++){  //绘出图样
        //  k0=n*120-120+6 ;  k1=n*120-6 ;   //3点方向
     k0=n*120-360+6 ;  k1=n*120-240-6 ;  //12点方向
       for (i= k0; i<=k1 ; i++){  //绘制面上色
                a=pi/360*i ;   
            x0=(float)(r*cos (a))+dx ;     //r=radius
            y0=(float)(r*sin (a))+dy ;      //顺时针
            x1=(float)((r-100)*cos (a))+dx ;     //r=radius
            y1=(float)((r-100)*sin (a))+dy ;     //顺时针
       if (n==1) cs.SetColor(255,220,0,0);   //设色
       if (n==2) cs.SetColor(255,220,120,0);
       if (n==3) cs.SetColor(255,120,100,200);
       if (n==4) cs.SetColor(255,0,230,0);
       if (n==5) cs.SetColor(255,0,150,250);
       if (n==6) cs.SetColor(255,230,230,0);
       cs.DrawLine (x1,y1,x0,y0) ;
    cs.DrawRect (80,n*30+90 ,142,n*30+115); //色标
              a=pi/360*(n*120-300) ;   
              x2=(float)(r*cos (a))+dx ;     //r=radius
              y2=(float)(r*sin (a))+dy ;     //顺时针
          cs.DrawCircle (x2,y2,65);      //扇形圆头
                     }   
           cs.SetColor(255,250,250,250);   
           cs.SetTextSize (20);
               pn=p1[n]/100 ;     //保留 位小数
           ss1=doubleToString (pn)+"%" ;
            ma=pi/360*((k0+k1)/2) ;
            x3=(float)((r-5)*cos (ma))+dx ;     
            y3=(float)((r-5)*sin (ma))+dy ;
          cs.DrawText (ss1,x3-25,y3+5);     //标%
              cs.Update () ;     }  //绘图

       for (n= 1; n<=4 ; n++){  //虚套色圈
              r=150-n*25 ;
             cs.SetColor(55,250,250,250);  
             cs.DrawCircle (dx,dy, r);      }

             cs.SetTextSize (80);
             cs.SetColor(255,250,250,250);  
             cs.DrawText ("♻",315,284) ;
             cs.SetTextSize (30);
             cs.DrawText ("🏘",345,195) ;  
             cs.DrawText ("🚑",340,345) ;   
             cs.DrawText ("🎡",276,230) ;  
             cs.DrawText ("🍎",410,230) ;  
             cs.DrawText ("🛠",410,305) ;   
             cs.DrawText ("🎱",275,300) ;  

        cs.SetTextSize (26);
          cs.SetColor(255,0,0,250);
        cs.DrawText ("Group ",65,110);
           cs.SetTextSize (20);
        cs.DrawText (" A    房产",55,140);
        cs.DrawText (" B    生活",55,170);
        cs.DrawText (" C    工作",55,200);
        cs.DrawText (" D    医疗",55,230);
        cs.DrawText (" E    娱乐",55,260);
        cs.DrawText (" F    旅游",55,290);
 
      
//题标:  艺术立体字制作
        cs.SetFillMode (1);//0不填色,1填色
        cs.SetTextStyle (1);
        cs.SetStrokeWidth(1);
        cs.SetTextSize (28);
        cs.SetColor(255,0,0,250);      
      cs.DrawText ("Art Graphics 📊",480,60) ;
      cs.SetTextSize (42);
         ss="创意艺术图:六边形艺术图" ;
      cs.SetColor(255,50,120,20);      //立体字
           cs.DrawText (ss,114,534);    //阴影
      cs.SetColor(255,0,250,0);
           cs.DrawText (ss,110,530);    //本字
      cs.SetFillMode (0);//0不填色,1填色
      cs.SetColor(255,250,150,0);
           cs.DrawText (ss,110,530);    //框线
       cs.Update ();
}//ArtGraphics6 ()
    

//**** END *****************
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1545882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能聊天机器人与大型语言模型 (LLM):哪个适合您的业务?

简介&#xff1a;欢迎来到未来 您可能听说过人工智能聊天机器人和大型语言模型 (LLM)&#xff0c;对吧&#xff1f; 这些技术奇迹正在重塑企业的沟通和运营方式。 但是&#xff0c;这是一个价值百万美元的问题&#xff1a;哪一个适合您的业务&#xff1f; 让我们深入了解一下&…

shopee全托管服务是什么?Shopee全托管服务有什么特点及优势

2023年各大电商平台都大力推广自家的全托管业务&#xff0c;Shopee也在2023年7月份正式发布全托管业务&#xff0c;2024年&#xff0c;Shopee重点发力全托管业务&#xff0c;对入驻卖家将投入更大的扶持资源。但还有很多小伙伴并不了解什么是shopee全托管服务&#xff0c;所以今…

【数据结构与算法】java有向带权图最短路径算法-Dijkstra算法(通俗易懂)

目录 一、什么是Dijkstra算法二、算法基本步骤三、java代码四、拓展&#xff08;无向图的Dijkstra算法&#xff09; 一、什么是Dijkstra算法 Dijkstra算法的核心思想是通过逐步逼近的方式&#xff0c;找出从起点到图中其他所有节点的最短路径。算法的基本步骤如下&#xff1a;…

Simple negative sampling for link prediction inknowledge graphs

摘要 知识图嵌入方法学习知识图中实体和关系的低维向量表示&#xff0c;便于知识图中的链接预测任务。在学习嵌入过程中&#xff0c;采样负三元组是很重要的&#xff0c;因为KGs只观察到正三元组。据我们所知&#xff0c;均匀随机、基于生成对抗网络(GAN)和nscach、结构感知负…

PTA由斜杠划分区域

在由 1 x 1 方格组成的 N x N 网格 grid 中&#xff0c;每个 1 x 1 方块由 /、\ 或空格构成。这些字符会将方块划分为一些共边的区域。 返回区域的数目。 输入格式: 第一行输入一个正整数N&#xff08;N<30&#xff09; 随后N行&#xff0c;每行输入一个长度为N的字符串…

基于单片机的太阳能充电系统设计

摘要:本文所设计的太阳能充电系统主要由以下几个模块组成:STC89C52 主控模块、TP4056 充电电路、电压AD 采集模块、LCD1602 液晶显示模块和太阳能充电电池等组成。此太阳能充电器制作简单,性价比高,性能稳定。 关键词:LCD1602;太阳能充电系统;ADC0832 太阳能充电系统的充…

DARTS-: ROBUSTLY STEPPING OUT OF PERFORMANCE COLLAPSE WITHOUT INDICATORS

DARTS-&#xff1a;增加辅助跳跃连接&#xff0c;鲁棒走出搜索性能崩溃 论文链接&#xff1a;https://arxiv.org/abs/2009.01027 项目链接&#xff1a;GitHub - Meituan-AutoML/DARTS-: Code for “DARTS-: Robustly Stepping out of Performance Collapse Without Indicators…

分页多线程处理大批量数据

1.业务场景 因为需要从一个返利明细表中获取大量的数据&#xff0c;生成返利报告&#xff0c;耗时相对较久&#xff0c;作为后台任务执行。但是后台任务如果不用多线程处理&#xff0c;也会要很长时间才能处理完。 另外考虑到数据量大&#xff0c;不能一次查询所有数据在内存…

华为数通方向HCIP-DataCom H12-821题库(多选题:201-220)

第201题 以下关于BGP中Orginator ID属性的描述,正确的是哪些项? A、Originator ID属于公认任意属性 B、当其他BGP Speaker接收到这条路由的时候,将比较收到的0nginator ID和本地的Router ID,如果两个ID相同BGP Speaker会忽略掉这条路由,不做处理 C、当一条路由第一次被RR…

【目标检测】NMS算法的理论讲解

将NMS就必须先讲IOU&#xff0c; IOU就是交并比&#xff0c;两个检测框的交集除以两个检测框的并集就是IOU 为什么要做NMS操作&#xff0c;因为要去除同一个物体的多的冗余检测框 那么NMS算法是如何做的呢&#xff1f; 以上是算法的流程图 下面讲解算法的流程 首先输入是预…

爬虫Day3

用到的网页--豆瓣电影Top250 需要爬取信息&#xff1a; 数据保存在网页源代码中&#xff0c;是服务加载方式。先拿到网页源代码--request。再通过re提取想要的信息---re。 新知识&#xff1a;用csv存数据&#xff0c;可以用excel表格展示数据 import csv result obj.findite…

串口通信标准RS232 RS485 RS422的区别

RS-232、RS-422、RS-485是关于串口通讯的一个机械和电气接口标准&#xff08;顶多是网络协议中的物理层&#xff09;&#xff0c;不是通讯协议&#xff0c;它们之间的几个不同点如下&#xff1a; 一、硬件管脚接口定义不同 二、工作方式不同 RS232&#xff1a; 3线全双工 RS…

element UI季度选择器的实现

效果展示 用elementUI的select实现季度选择器 代码实现 generateQuarterOption放在methods中&#xff0c;需要近几年的只需要修改第一个循环的次数即可&#xff0c;mounted生命周期函数中调用generateQuarterOption() generateQuarterOption() {//近3年所有季度let now ne…

深入解析以太坊Dencun升级:提升网络性能与安全的关键举措

近年来&#xff0c;以太坊网络一直在不断演进和发展&#xff0c;为了应对日益增长的用户需求和挑战&#xff0c;以太坊社区不断提出并实施各种升级和改进措施。其中&#xff0c;Dencun升级作为最新的一项重大改革&#xff0c;旨在提升以太坊网络的性能和安全性&#xff0c;为其…

护眼台灯有必要买贵的吗?看看业内人士推荐的这五款!

随着学习压力的增大和担心孩子的近视&#xff0c;很多家长朋友们除了培养孩子正确的用眼习惯之外&#xff0c;也开始关注或准备添置学习用的护眼台灯&#xff0c;以缓解学习工作时的用眼疲劳&#xff0c;而相关的护眼灯也成为了市场的热门产品。而市面上护眼灯品牌众多&#xf…

CUDA从入门到放弃(四):CUDA 编程模式 CUDA Programming Model

CUDA从入门到放弃&#xff08;四&#xff09;&#xff1a;CUDA 编程模式 CUDA Programming Model 1 Kernels CUDA C 扩展了 C&#xff0c;允许定义名为内核的函数&#xff0c;这些函数可以被不同的 CUDA 线程并行执行多次&#xff0c;而不是像普通 C 函数那样只执行一次。内核…

【2024.3.26练习】画中漂流

题目描述 题目分析 根据题型分析应该可以用动态规划解决。设为第秒&#xff0c;剩余体力值为&#xff0c;且当前位置距离峡谷米时的总方案数。根据题意&#xff0c;状态转移方程如下&#xff1a; 这样定义状态的话空间复杂度为&#xff0c;大大超出了空间限制。观察转移方程左…

【SpringBoot】实现一个简单的图片上传

前端上传表单 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <form enctype"multipart/form-data" method"post" action&q…

拓展AI边界:去中心化人工智能的应用场景和主要项目盘点

随着区块链技术的发展和普及&#xff0c;去中心化人工智能&#xff08;AI&#xff09;逐渐成为技术领域的焦点之一。区块链的去中心化特性为AI技术的应用提供了新的可能性&#xff0c;使得数据共享、模型训练和应用部署更加安全、透明和可靠。本文将探索去中心化AI的应用场景&a…

【NLP学习记录】Embedding和EmbeddingBag

Embedding与EmbeddingBag详解 ●&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客 ●&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 ●&#x1f680; 文章来源&#xff1a;K同学的学习圈子1、Embedding详解 Embedding是Pytorch中最基本…