C#如何绘制饼状图和柱状图
这篇文章主要介绍C#如何绘制饼状图和柱状图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
具体内容如下
#代码如下:
usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Drawing.Drawing2D;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceTEST3._2{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){BarMap();}privatevoidBitMap()//饼状图{int[]saleNum={300,500,400};intsum=0,threeNum=0,fourNum=0,fiveNum=0;for(inti=0;i<saleNum.Length;i++){sum+=saleNum[i];if(i==0)threeNum=saleNum[0];elseif(i==1)fourNum=saleNum[1];elsefiveNum=saleNum[2];}intheight=pictureBox1.Height,width=pictureBox1.Width;Bitmapbitmap=newBitmap(width,height);Graphicsg=Graphics.FromImage(bitmap);g.Clear(Color.White);Penpen1=newPen(Color.Red);Brushbrush2=newSolidBrush(Color.PowderBlue);Brushbrush3=newSolidBrush(Color.Blue);Brushbrush4=newSolidBrush(Color.Wheat);Brushbrush5=newSolidBrush(Color.Orange);Fontfont1=newFont("CouriterNew",16,FontStyle.Bold);Fontfont2=newFont("CouriterNew",10);g.FillRectangle(brush2,0,0,width,height);g.DrawString("每月销售占比饼状图",font1,brush3,newPoint(70,20));intpiex=100,piey=60,piew=200,pieh=200;floatangle1=Convert.ToSingle((360/Convert.ToSingle(sum))*Convert.ToSingle(threeNum));floatangle2=Convert.ToSingle((360/Convert.ToSingle(sum))*Convert.ToSingle(fourNum));floatangle3=Convert.ToSingle((360/Convert.ToSingle(sum))*Convert.ToSingle(fiveNum));g.FillPie(brush3,piex,piey,piew,pieh,0,angle1);g.FillPie(brush4,piex,piey,piew,pieh,angle1,angle2);g.FillPie(brush5,piex,piey,piew,pieh,angle1+angle2,angle3);g.DrawRectangle(pen1,50,300,310,130);g.FillRectangle(brush3,90,320,20,10);g.DrawString(string.Format("3月份销量占比:{0:P2}",Convert.ToSingle(threeNum)/Convert.ToSingle(sum)),font2,brush3,120,320);g.FillRectangle(brush4,90,360,20,10);g.DrawString(string.Format("4月份销量占比:{0:P2}",Convert.ToSingle(fourNum)/Convert.ToSingle(sum)),font2,brush3,120,360);g.FillRectangle(brush5,90,400,20,10);g.DrawString(string.Format("5月份销量占比:{0:P2}",Convert.ToSingle(fiveNum)/Convert.ToSingle(sum)),font2,brush3,120,400);this.groupBox1.Text="饼状图";this.pictureBox1.Width=bitmap.Width;this.pictureBox1.Height=bitmap.Height;this.pictureBox1.BackgroundImage=bitmap;}privatevoidBarMap()//柱状图{int[]saleNum={300,500,400};intsum=saleNum[0]+saleNum[1]+saleNum[2];float[]Y_Num={Convert.ToSingle(saleNum[0])/Convert.ToSingle(sum),Convert.ToSingle(saleNum[1])/Convert.ToSingle(sum),Convert.ToSingle(saleNum[2])/Convert.ToSingle(sum)};intheight=pictureBox1.Height,width=pictureBox1.Width;Bitmapimage=newBitmap(width,height);//创建Graphics类对象Graphicsg=Graphics.FromImage(image);try{//清空图片背景色g.Clear(Color.White);Fontfont=newFont("Arial",10,FontStyle.Regular);Fontfont1=newFont("宋体",20,FontStyle.Bold);LinearGradientBrushbrush=newLinearGradientBrush(newRectangle(0,0,image.Width,image.Height),Color.Blue,Color.BlueViolet,1.2f,true);Fontfont2=newSystem.Drawing.Font("Arial",10,FontStyle.Bold);SolidBrushmybrush=newSolidBrush(Color.Red);SolidBrushmybrush3=newSolidBrush(Color.Green);Penmypen=newPen(brush,1);//绘制线条//绘制横向线条intx=100;Penmypen1=newPen(Color.Blue,2);x=60;g.DrawLine(mypen1,x,0,x,300);//绘制纵向线条inty=0;for(inti=0;i<11;i++){g.DrawLine(mypen,45,y,60,y);y=y+30;}g.DrawLine(mypen1,60,y-30,620,y-30);//x轴String[]n={"3月份","4月份","5月份"};x=100;for(inti=0;i<3;i++){g.DrawString(n[i].ToString(),font,Brushes.Blue,x,300);//设置文字内容及输出位置Console.WriteLine(300-Y_Num[i]*100*3);g.FillRectangle(mybrush,x,300-Y_Num[i]*100*3,20,Y_Num[i]*100*3);g.DrawString(Y_Num[i].ToString(),font2,Brushes.Green,x,300-Y_Num[i]*100*3-15);x=x+100;}//y轴String[]m={"0","0.10","0.20","0.30","0.40","0.50","0.60","0.70","0.80","0.90","1.00"};y=0;for(inti=10;i>=0;i--){g.DrawString(m[i].ToString(),font,Brushes.Blue,20,y);//设置文字内容及输出位置y=y+30;}//绘制标识Fontfont3=newSystem.Drawing.Font("Arial",10,FontStyle.Regular);g.DrawRectangle(newPen(Brushes.Blue),170,390,250,50);//绘制范围框g.FillRectangle(Brushes.Red,200,410,20,10);//绘制小矩形g.DrawString("月销量占比",font3,Brushes.Red,292,408);this.button1.Text="查看饼状图";this.groupBox1.Text="柱状图";this.pictureBox1.Width=image.Width;this.pictureBox1.Height=image.Height;this.pictureBox1.BackgroundImage=image;}catch{}}privatevoidButton1_Click(objectsender,EventArgse){BitMap();this.button1.Visible=false;//隐藏button}}}
以上是“C#如何绘制饼状图和柱状图”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。