• WinFrom折线图


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace MyEillipse
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Paint(object sender, PaintEventArgs e)
            {
                //声明一个string类型的数组用于存储一年中的12个月份
                string[] month = new string[12] {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
                float[] d = new float[12] { 20.5F,60,10.8F,15.6F,30,70.9F,50.3F,30.7F,70,50.4F,30.8F,20};
                //画图初始化
                Bitmap bMap = new Bitmap(500,500);
                Graphics gph = Graphics.FromImage(bMap);
                gph.Clear(Color.White);
    
                PointF cPt = new PointF(40, 420);//中心点
                //X轴三角形
                PointF[] xPt = new PointF[3] { new PointF(cPt.Y + 15, cPt.Y), new PointF(cPt.Y, cPt.Y-8), new PointF(cPt.Y, cPt.Y+8) };
                //Y轴三角形
                PointF[] yPt = new PointF[3] { new PointF(cPt.X, cPt.X - 15), new PointF(cPt.X - 8, cPt.X), new PointF(cPt.X + 8, cPt.X) };
                gph.DrawString("某工厂某产品月生产量图表",new Font("宋体",14),Brushes.Black,new PointF(cPt.X+60,cPt.X));
    
                //X轴
                gph.DrawLine(Pens.Black, cPt.X, cPt.Y, cPt.Y, cPt.Y);
                gph.DrawPolygon(Pens.Black, xPt);
                gph.FillPolygon(new SolidBrush(Color.Black), xPt);
                gph.DrawString("月份", new Font("宋体", 12), Brushes.Black, new PointF(cPt.Y + 10, cPt.Y + 10));
    
                //Y轴
                gph.DrawLine(Pens.Black, cPt.X, cPt.Y, cPt.X, cPt.X);
                gph.DrawPolygon(Pens.Black, yPt);
                gph.FillPolygon(new SolidBrush(Color.Black), yPt);
                gph.DrawString("单位(万)", new Font("宋体", 12), Brushes.Black, new PointF(0,7));
    
                for (int i = 1; i <=12; i++)
                {
                    //画Y轴刻度
                    if (i < 11)
                    {
                        gph.DrawString((i * 10).ToString(), new Font("宋体", 11), Brushes.Black, new PointF(cPt.X - 30, cPt.Y - i * 30 - 6));
                        gph.DrawLine(Pens.Black, cPt.X - 3, cPt.Y - i * 30, cPt.X, cPt.Y - i * 30);
                    }
                    //画X轴
                    gph.DrawString(month[i - 1].Substring(0, 1), new Font("宋体", 11), Brushes.Black, new PointF(cPt.X + i * 30 - 5, cPt.Y + 5));
                    gph.DrawString(month[i - 1].Substring(1, 1), new Font("宋体", 11), Brushes.Black, new PointF(cPt.X + i * 30 - 5, cPt.Y + 20));
    
                    if (month[i - 1].Length>2)
                        gph.DrawString(month[i-1].Substring(2,1),new Font("宋体",11),Brushes.Black,new PointF(cPt.X+i*30-5,cPt.Y+35));
                    //画点
                    gph.DrawEllipse(Pens.Black,cPt.X+i*30-1.5F,cPt.Y-d[i-1]*3-1.5F,3,3);
                    gph.FillEllipse(new SolidBrush(Color.Black),cPt.X+i*30-1.5F,cPt.Y-d[i-1]*3-1.5F,3,3);
                    //画数值
                    gph.DrawString(d[i - 1].ToString(), new Font("宋体", 11), Brushes.Black, new PointF(cPt.X + i * 30, cPt.Y - d[i - 1] * 3));
                    //画折线
                    
                    if(i>1) gph.DrawLine(Pens.Red,cPt.X+(i-1)*30,cPt.Y-d[i-2]*3,cPt.X+i*30,cPt.Y-d[i-1]*3);
                }
                pictureBox1.Image = bMap;
            }
        }
    }

     

    生命中最值得欣慰的,莫过于一觉醒来,你还在身旁
  • 相关阅读:
    JavaScript——BOM和DOM
    css-2
    Css-1
    storage size of 'xxx' isn't known问题出现的可能原因之一
    解决VS2010中winsock.h与winsock2.h冲突(重复定义)——转载
    SQLite : 解决“找不到请求的 .Net Framework 数据提供程序。可能没有安装”的问题
    使用 VirtualBox 虚拟机在电脑上运行 Android 4.0 系统,让电脑瞬间变安卓平板
    C#连接ACCESS的一个问题
    对硅谷和硅谷科技公司的十四问,全程干货
    nginx源码学习资源
  • 原文地址:https://www.cnblogs.com/chaonuanxi/p/9860330.html
Copyright © 2020-2023  润新知