excel表怎么做饼状图怎么加上数据

excel表怎么做饼状图怎么加上数据,第1张

打开插入菜单--图表--饼图;通过设置数据系列格式→系列选项→第一扇区起始角度可以控制饼图的旋转角度;通过设置绘图区的三维旋转可以控制饼图的翻转。下面以Excel 2010为例进行演示:

1、旋转饼图 双击饼图扇区或者右击饼图扇区,选择”设置数据系列格式“,得到如下图对话框。其中,第一扇区起始角度控制饼图的旋转角度,点爆炸型控制个扇区的分离程度。

2、翻转饼图

双击绘图区或者右击绘图区,选择”设置绘图区格式“,得到如下图对话框。切换到”三维旋转“选项卡,其中绕x旋.

转相当于上一步的”第一扇区起始角度“,绕y旋转控制饼图在纸面内的翻转角度。

3、综合以上两个设置方式,得到如下一系列经过旋转、分离、翻转的饼图样式

通过ChartFactory.createPieChart(null,data,true,true,false)

封装data采用jdbc方式从数据库读取数据封装到data

<?

//

参数以

a

为参数名传入,

a

的文本形态应该是用“

,

”分割的若干数字连接的字符串

//

这里首先判断

a

是否存在

if($_GET["a"]=="") die("0")

//

将得到的数据分解,存入数组

$shuju

$shuju=split(",",$_GET["a"])

//

再次判断数据的合法性,返回错误代码

if(count($shuju)==0) die("2")

//

定义整个图形的宽度和高度

//

读者可以根据需要修改这两个变量的值

$tukuan=300

$tugao=150

//

定义一个数组,用来存放每一个色块的角度范围

$jiaodu = array()

//

定义存贮数据和的变量

$total=0

//

遍历数组求和

for ($i = 0$i <count($shuju)$i++) {

if(!is_numeric($shuju[$i])) die("1")

$total+=$shuju[$i]

}

//

再次遍历,计算色块角度并存入数组

for ($i = 0$i <count($shuju)$i++) {

array_push ($jiaodu, round(360*$shuju[$i]/$total))

}

//

创建图像

$image = imagecreate($tukuan, $tugao)

//

定义一个灰色背景色

,

这个颜色其实就是大家很熟悉的页面色系

16

进制数字表示的

#EEEEEE

$white = imagecolorallocate($image, 0xEE, 0xEE, 0xEE)

//

再定义

10

对深浅对应的彩色,存入二维数组

$yanse = array(

array(

imagecolorallocate($image, 0x97, 0xbd, 0x00),

imagecolorallocate($image, 0x00, 0x99, 0x00),

imagecolorallocate($image, 0xcc, 0x33, 0x00),

imagecolorallocate($image, 0xff, 0xcc, 0x00),

imagecolorallocate($image, 0x33, 0x66, 0xcc),

imagecolorallocate($image, 0x33, 0xcc, 0x33),

imagecolorallocate($image, 0xff, 0x99, 0x33),

imagecolorallocate($image, 0xcc, 0xcc, 0x99),

imagecolorallocate($image, 0x99, 0xcc, 0x66),

imagecolorallocate($image, 0x66, 0xff, 0x99)

),

array(

imagecolorallocate($image, 0x4f, 0x66, 0x00),

imagecolorallocate($image, 0x00, 0x33, 0x00),

imagecolorallocate($image, 0x48, 0x10, 0x00),

imagecolorallocate($image, 0x7d, 0x64, 0x00),

imagecolorallocate($image, 0x17, 0x30, 0x64),

imagecolorallocate($image, 0x1a, 0x6a, 0x1a),

imagecolorallocate($image, 0x97, 0x4b, 0x00),

imagecolorallocate($image, 0x78, 0x79, 0x3c),

imagecolorallocate($image, 0x55, 0x7e, 0x27),

imagecolorallocate($image, 0x00, 0x93, 0x37)

)

)

//

由下至上画

10

个像素高的深色饼图,作为阴影

$yuanxin_x=$tukuan/

2

for ($h = $tugao/

2+5$h >$tugao/

2-5$h--) {

$kaishi=0

$jieshu=0

for ($i = 0$i <count($shuju)$i++) {

$kaishi=$kaishi+0

$jieshu=$kaishi+$jiaodu[$i]

$yanse_i=fmod($i,10)

imagefilledarc($image,$yuanxin_x,$h,$tukuan,$tugao-20,$kaishi,$jieshu,$yanse[1][$yanse_i],IM

G_ARC_PIE)

$kaishi+=$jiaodu[$i]

$jieshu+=$jiaodu[$i]

}

}

//

在最高处

(

也就是

$h

最小时

)

画一个浅色饼图,

这个浅色图跟先画上的深色饼图就能产生立

体效果了

for ($i = 0$i <count($shuju)$i++) {

$kaishi=$kaishi+0

$jieshu=$kaishi+$jiaodu[$i]

$yanse_i=fmod($i,10)

imagefilledarc($image,

$yuanxin_x,

$h,

$tukuan,

$tugao-20,

$kaishi,

$jieshu,

$yanse[0][$yanse_i], IMG_ARC_PIE)

$kaishi+=$jiaodu[$i]

$jieshu+=$jiaodu[$i]

}

//

设定文件头

header('Content-type: image/png')

//

输出图像

imagepng($image)

//

释放资源

imagedestroy($image)

?>

使用方法

在需要显示图像的位置插入如下代码

<img src="bing_img.php?a=3,2,3,4"/>

a

的文本格式是由“

,

”连接的若干个数据的字符串,

get

方式传入。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6668860.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存