中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#如何繪制餅狀圖和柱狀圖

發布時間:2022-02-14 09:47:46 來源:億速云 閱讀:274 作者:小新 欄目:開發技術

這篇文章主要介紹C#如何繪制餅狀圖和柱狀圖,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

具體內容如下

C#如何繪制餅狀圖和柱狀圖

C#如何繪制餅狀圖和柱狀圖

#代碼如下:

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TEST3._2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            BarMap();
        }
        private void BitMap()//餅狀圖
        {

            int[] saleNum = { 300, 500, 400 };
            int sum = 0, threeNum = 0, fourNum = 0, fiveNum = 0;
            for (int i = 0; i < saleNum.Length; i++)
            {
                sum += saleNum[i];
                if (i == 0)
                    threeNum = saleNum[0];
                else if (i == 1)
                    fourNum = saleNum[1];
                else
                    fiveNum = saleNum[2];
            }

            int height = pictureBox1.Height, width = pictureBox1.Width;
            Bitmap bitmap = new Bitmap(width, height);
            Graphics g = Graphics.FromImage(bitmap);
            g.Clear(Color.White);
            Pen pen1 = new Pen(Color.Red);
            Brush brush2 = new SolidBrush(Color.PowderBlue);
            Brush brush3 = new SolidBrush(Color.Blue);
            Brush brush4 = new SolidBrush(Color.Wheat);
            Brush brush5 = new SolidBrush(Color.Orange);

            Font font1 = new Font("Couriter New", 16, FontStyle.Bold);
            Font font2 = new Font("Couriter New", 10);
            g.FillRectangle(brush2, 0, 0, width, height);
            g.DrawString("每月銷售占比餅狀圖", font1, brush3, new Point(70, 20));
            int piex = 100, piey = 60, piew = 200, pieh = 200;
            float angle1 = Convert.ToSingle((360 / Convert.ToSingle(sum)) * Convert.ToSingle(threeNum));
            float angle2 = Convert.ToSingle((360 / Convert.ToSingle(sum)) * Convert.ToSingle(fourNum));
            float angle3 = 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;

        }
        private void BarMap()//柱狀圖
        {
            int[] saleNum = { 300, 500, 400 };
            int sum = 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) };
            int height = pictureBox1.Height, width = pictureBox1.Width;
            Bitmap image = new Bitmap(width, height);
            //創建Graphics類對象
            Graphics g = Graphics.FromImage(image);
            try
            {
                //清空圖片背景色
                g.Clear(Color.White);
                Font font = new Font("Arial", 10, FontStyle.Regular);
                Font font1 = new Font("宋體", 20, FontStyle.Bold);
                LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height),Color.Blue, Color.BlueViolet, 1.2f, true);

                Font font2 = new System.Drawing.Font("Arial", 10, FontStyle.Bold);
                SolidBrush mybrush = new SolidBrush(Color.Red);
                SolidBrush mybrush3 = new SolidBrush(Color.Green);
                Pen mypen = new Pen(brush, 1);
                //繪制線條
                //繪制橫向線條
                int x = 100;
                Pen mypen1 = new Pen(Color.Blue, 2);
                x = 60;
                g.DrawLine(mypen1, x, 0, x, 300);

                //繪制縱向線條
                int y = 0;
                for (int i = 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 (int i = 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 (int i = 10; i >= 0; i--)
                {
                    g.DrawString(m[i].ToString(), font, Brushes.Blue, 20, y); //設置文字內容及輸出位置
                    y = y + 30;
                }
                //繪制標識
                Font font3 = new System.Drawing.Font("Arial", 10, FontStyle.Regular);
                g.DrawRectangle(new Pen(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 { }
 
         }
        private void Button1_Click(object sender, EventArgs e)
        {
            BitMap();
            this.button1.Visible =false;//隱藏button
        }
     
    }
}

以上是“C#如何繪制餅狀圖和柱狀圖”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

额济纳旗| 五家渠市| 鄱阳县| 新疆| 朝阳市| 孝义市| 惠来县| 射阳县| 马关县| 通河县| 沾化县| 长武县| 偏关县| 浏阳市| 湄潭县| 屏东县| 安新县| 福鼎市| 平和县| 临江市| 松滋市| 湖口县| 偃师市| 辰溪县| 明溪县| 三河市| 育儿| 西昌市| 潮安县| 汝城县| 丰顺县| 会同县| 和顺县| 文化| 敦煌市| 稻城县| 清流县| 楚雄市| 同江市| 南溪县| 专栏|