复合式统计图绘制方法(3)

news2024/12/21 11:20:16

复合式统计图绘制方法(3)
常用的统计图有条形图、柱形图、折线图、曲线图、饼图、环形图、扇形图。
前几类图比较容易绘制,饼图环形图绘制较难。
在统计图的应用方面,有时候有两个关联的统计学的样本值要用统计图来表达,一张统计图不能表达清楚,就要二张图来表达。由此就产生了复合式的统计图,它能将两个需要表达的统计概念统一在一张图表上阐述清楚。

今在此提供一种复合式统计图的绘制方法供参考。

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

//在统计图表的样本值的计算方面,样本值的量的表现是一个方面,重点是量的对比,这是体现统计图目的的主要意义。其中最基本的是完成与计划的对比。

//介绍一个基本的计算方法:
//单个商品按类相加=单个商品销售总量
//分组6个商品总量相加=商品销售总量
//占比分析:单个商品销售总量/商品销售总量
//商品*单价=销售额
//6个商品类销售额相加=商品销售总额
//单个销售额/销售总额=单个商品类占比
//占比分析:单个商品类销售总额/商品销售总额

下面是绘制复合式统计图的代码:
//变量: 可设置成全局变量或私有变量
Canvas cs ;     //画布,绘制图表载体
float pi=3.1415926535 ;
float a ;            //三角函数 sin (a), cos (a), 
float r ;             //圆半径 radius
int i, j, n ;
float x0,y0,x1,y1,x2,y2 ;  //作图
float dx1,dy1,dx,dy ;             //中心坐标
string ss, ss1, ss2,ss3 ;         //打印文字
 int p[6] ;        //set data   or  input  data
 double pn ;   //显示数据,计算
  int cr, cg, cb ;     //设置颜色 setColor (a,r,g,b) 
int  p1[16],  p2[16], p3[16] ;
 int ppn ;   //计算
 int tb ;      //set tab
 int k0, k1 ;    //圆720线 起终点
 double sum1, sum2, sum3, sum ;  //统计计算
 double sum4, sum5, sum6 ;

 50966842d3e2452b8292f4796fe217a1.png
//*************************  
compound3 (){ //复合式统计图(3) C形图加条形图
      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,250,250,240);
      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 

 

//图例样本值:input data   
       cs.SetFillMode (1);//0不填色,1填色
       dx=360;  dy=280 ;   r=200;  //center, radius
 //分组 4 。data : 计划p(n) 4 ,完成 p1(n)  4 
     p[1]=180; p[2]=170; p[3]=160 ;  p[4]=150;  //计划
     p1[1]=190;   p1[2]=180; 
     p1[3]=165 ;  p1[4]=145;  //完成
 
  //复合式统计图样例:艺术感图例 (C形图加条形图)
      cs.SetColor(255,250,230,240);
      cs.DrawCircle(dx,dy,190);    //center 图案底色
           cs.SetStrokeWidth(1);    //线
     for (i=1; i<=8 ; i++){   //底图雷达线
            a=pi/360*i*90 ;     //720度八分线
            cs.SetColor(255,250,0,0); //设色
            x0=(float)(195*cos (a))+dx;     //r=radius
            y0=(float)(- 195*sin (a))+dy;  
            cs.DrawLine (dx,dy,x0,y0) ;    }  //八分线
        cs.SetTextStyle (1);  //粗体字
        cs.SetTextSize (22);
        cs.SetColor(255,0,0,250);
        cs.DrawText ("Group 完成",48,90);
        cs.DrawText (" A",45,128);
        cs.DrawText (" B",45,168);
        cs.DrawText (" C",45,208);
        cs.DrawText (" D",45,248);
        cs.DrawText ("计划 ",608,260);

     for (n=1; n<=4 ; n++){   //data=3
           r=200-n*35 ;     //r=radius
           pn=p1[n]/2*72/10+180;     //12点方向为0位
     for (i=180 ; i<=pn; i++){  //画图案 颜色可自定
           a=pi/360*i ;  
       if (n==1) cs.SetColor(255,190,230,250); //设色
       if (n==2) cs.SetColor(255,170,210,250);
       if (n==3) cs.SetColor(255,150,190,250);
       if (n==4) cs.SetColor(255,130,170,250);
           x0=(float)(r*cos (a))+dx;     //r=radius
           y0=(float)(- r*sin (a))+dy;    //逆时针
       cs.DrawCircle (130,n*40+80,19); //色标
       cs.DrawCircle (88,n*40+80,19); //色标
   cs.DrawRect (92,n*40+61,129,n*40+99); //色标
   cs.DrawCircle (x0,y0,16) ;  //绘出图案,动画式显示
  
     //* print data as "87%",  加"%"
     //* input data 转换,百分比计算
         ppn=p1[n]*100/p[n] ;     //比值 %
         ppn=(int)ppn ;
            ss1=doubleToString (ppn)+"%" ;       //% 
            ss2=intToString (p1[n]) ;     //完成样本值
         cs.SetTextSize (20);
         cs.SetColor(255,120,50,250);
              tb=0 ;
           if (ppn<100) tb=9 ;   //tab 居中或右齐
       cs.DrawText (ss1,77+tb,n*40+85);
       cs.DrawText (ss2,dx-30,dy-195+n*36);
  
            x1=630 ;    y1=90 ;    //绘制计划条形图
            x2=x1-p[n]+n*5 ;  y2=n*35+y1 ;
             cs.SetColor(155,250,0,0);
            cs.SetColor(155,250,180,200);
        cs.DrawRect (x1-2,y2-30,x2+15,y2) ;  
        cs.DrawCircle (x2+15,y2-15,14) ;  

              cs.SetColor(255,0,0,250);
         ss3=intToString (p[n]) ;     //计划样本值
         cs.DrawText (ss3,610,y2-10);   
              cs.Update () ;    }      }

//题标:  艺术立体字制作
        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 (40);
         ss="复合统计图:C形图加条形图" ;
      cs.SetColor(255,50,120,20);      //立体字
           cs.DrawText (ss,114,544);    //阴影
      cs.SetColor(255,0,250,0);
           cs.DrawText (ss,110,540);    //本字
      cs.SetFillMode (0);//0不填色,1填色
      cs.SetColor(255,250,150,0);
           cs.DrawText (ss,110,540);    //框线
       cs.Update ();
}//compound3 ()

 

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

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

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

相关文章

Python电能质量扰动信号分类(六)基于扰动信号特征提取的超强机器学习识别模型

目录 往期精彩内容&#xff1a; 前言 1 数据集和特征提取 1.1 数据集导入 1.2 扰动信号特征提取 2超强模型XGBoost——原理介绍 2.1 原理介绍 2.2 特征数据集制作 3 模型评估和对比 3.1 随机森林分类模型 3.2 支持向量机SVM分类模型 3.3 XGBoost分类模型 代码、数据…

windows7怎么改ip地址?win7设置ip地址的步骤

随着网络的普及和技术的不断发展&#xff0c;IP地址对于计算机用户来说&#xff0c;已经不再是一个陌生的概念。在Windows 7操作系统中&#xff0c;根据网络环境和个人需求&#xff0c;有时我们需要手动修改IP地址。本文旨在向读者介绍如何在Windows 7系统中修改IP地址&#xf…

Redis常用指令,jedis与持久化

1.redis常用指令 第一个是key的常用指令&#xff0c;第二个是数据库的常用指令 前面的那些指令都是针对某一个数据类型操作的&#xff0c;现在的都是对所有的操作的 1.key常用指令 key应该设计哪些操作 key是一个字符串&#xff0c;通过key获取redis中保存的数据 对于key…

keil 中使用了cks32F103C8T6的芯片如何安装pack

首先是本来想使用stm32的芯片&#xff0c;结果商家给发过来的无法写入&#xff0c;一查是因为商家把cks的芯片给磨皮了&#xff0c;冒充stm来卖 那就花点时间来研究一下这个cks怎么在keil中写入 好不容易找到一个下载包 Keil.CS32F1xx_DFP.pack 【免费】中科芯CKSF103的PACK…

网络安全: Kali Linux 使用 hping3 阻塞目标主机

目录 一、实验 1.环境 2. 物理机测试远程连接 Windows server 3.Kali Linux 使⽤ hping3 ⼯具 二、问题 1. 常见的 DoS ⽅式有哪些 2.hping3 测试⼯具的命令格式和选项参数 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统版本IP备注Kali Linux2024.…

Python实现向量自回归移动平均模型(VARMA算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 向量自回归移动平均模型&#xff08;Vector Autoregressive Moving Average, VARMA&#xff09;是一种…

在 Rust 中实现 TCP : 2.解析原始字节

解析原始字节 现在已经设置了虚拟网络接口并且它接收了数据位&#xff0c;实现 TCP 之旅的下一步是从接收到的数据字节中解析出数据包。默认情况下&#xff0c;除了从虚拟网络接口发送和接收的数据包之外&#xff0c;还会在数据包前面附加 4 个字节的数据。 Tun/TAP documenta…

Flutter混合栈管理方案对比

1.Google官方&#xff08;多引擎方案&#xff09; Google官方建议的方式是多引擎方案&#xff0c;即每次使用一个新的FlutterEngine来渲染Widget树&#xff0c;存在的主要问题是每个引擎都要有比较大的内存等资源消耗&#xff0c;虽然Flutter 2.0之后的FlutterEngineGroup通过在…

AI学习集合-前瞻

AI学习前瞻 工作岗位 算法工程师机器学习工程师图像算法工程师ai工程师NLP高级算法工程师 学习路线 应用场景 计算机视觉技术应用场景 自然语言应用 AI流程 AI拟人流程 机器人历史数据经验模型规律依据模型预测未来依据规律做出判断 AI基本流程 术语所用到的技术手段数据数…

收藏4款免费又好用的甘特图软件

zz-plan zz-plan&#xff08;https://zz-plan.com/&#xff09; 是一款基于甘特图的项目管理协作软件。无论项目大小、简单复杂都能轻松管理。任务、进度、工时、资源、周期、依赖关系都能一目了然。支持私有化部署&#xff0c;可完全控制、灵活定制、确保数据安全&#xff0c…

峟思测斜仪:工程斜坡稳定性的精确守护者

在工程建设领域&#xff0c;斜坡的稳定性始终是一个关键的安全问题。斜坡失稳不仅可能导致工程项目的延误&#xff0c;更可能威胁到人们的生命安全。为了有效监测和评估斜坡的稳定性&#xff0c;工程师们依赖于一种先进的设备——峟思测斜仪。 测斜仪的工作原理 峟思测斜仪采用…

分层解耦-IOCDI

内聚&#xff1a;软件中各个功能模块内部的功能联系。 耦合&#xff1a;衡量软件中各个层/模块之间依赖、关联的程度 软件设计原则&#xff1a;高内聚低耦合 控制反转&#xff1a;Inversion Of Control&#xff0c;简称IOC。对象的创建控制权由程序自身转移到外部&#xff08;…

c++ primer学习笔记(一)

目录 第一章、c快速入门 重点&#xff1a;类的简介 第二章 1、基本内置类型 2、字面值常量 1、整型字面值规则 2、浮点字面值规则 3、布尔字面值 4、字符字面值 5、非打印字符的转义序列 ​编辑 6、字符串字面值 3、变量 1、变量标识符 2、定义和初始化对象 3、…

javaWebssh网上超市销售管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh网上超市销售管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCA…

【深度学习笔记】计算机视觉——多尺度目标检测

多尺度目标检测 在 sec_anchor中&#xff0c;我们以输入图像的每个像素为中心&#xff0c;生成了多个锚框。 基本而言&#xff0c;这些锚框代表了图像不同区域的样本。 然而&#xff0c;如果为每个像素都生成的锚框&#xff0c;我们最终可能会得到太多需要计算的锚框。 想象一…

第十四届蓝桥杯大赛B组 JAVA 蜗牛 (递归剪枝)

题目描述&#xff1a; 这天&#xff0c;一只蜗牛来到了二维坐标系的原点。 在 x 轴上长有 n 根竹竿。它们平行于 y 轴&#xff0c;底部纵坐标为 0&#xff0c;横坐标分别为 x1, x2, …, xn。竹竿的高度均为无限高&#xff0c;宽度可忽略。蜗牛想要从原点走到第 n 个竹竿的底部也…

css样式元素的相对定位,绝对定位,固定定位等元素定位运用技巧详解

文章目录 1.相对定位 relative2.绝对定位 absolute3.固定定位4.display 转换元素5.float浮动6.float产生内容塌陷问题7.overflow CSS样式学习宝典&#xff0c;关注点赞加收藏&#xff0c;防止迷路哦 在CSS中关于定位的内容是&#xff1a;position:relative | absolute | static…

消防主机报故障时发出故障及原因及解决办法!

本文以青鸟消防JBF-11SF为例。 其他型号或品牌的消防主机也可参考。 开机前&#xff0c;必须先测量系统接线的绝缘电阻&#xff0c;确保各绝缘电阻满足以下要求&#xff1a; 1&#xff09;空载时各电路信号线之间的绝缘值应大于5K欧姆。 2&#xff09;正常天气条件下&#x…

C++:函数模板整理

函数模板: 找到函数相同的实现思路&#xff0c;区别于函数的参数类型。 使用函数模板使得函数可容纳不同类型的参数实现函数功能&#xff0c;而不是当类型不同时便编译大量类型不同的函数&#xff0c;产生大量重复代码和内存占用 函数模板格式&#xff1a; template<typ…

基于ARIMA+SARIMA的航空公司 RPM 时间序列预测模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…