C# chart初识
时间:2022-07-23
本文章向大家介绍C# chart初识,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
首先,我用最简洁的语句做一幅图:
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;
using System.Windows.Forms.DataVisualization.Charting;
namespace WindowsFormsApp13
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
for (int j = 0; j < 100; j++)
chart1.Series[0].Points.AddXY(j, j);
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
运行结果:
默认的是生成的柱形图,当然这样做出来的图很丑,远远满足不了我们的要求.
接下来开始美图
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;
using System.Windows.Forms.DataVisualization.Charting;
namespace WindowsFormsApp13
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Queue<double> dataQueue = new Queue<double>(100);
private void Form1_Load(object sender, EventArgs e)
{
/* https://www.cnblogs.com/topmount/p/8430689.html */
// 定义图表区域
this.chart1.ChartAreas.Clear();
ChartArea chartArea1 = new ChartArea("C1");
this.chart1.ChartAreas.Add(chartArea1);
//定义存储和显示点的容器
this.chart1.Series.Clear();
Series series1 = new Series("S1");
series1.ChartArea = "C1";
this.chart1.Series.Add(series1);
chart1.Series[0].Points.Clear();
chart1.Series[0].ChartType = SeriesChartType.Spline;//设置图表类型
chart1.ChartAreas[0].AxisX.Interval = 5; //设置X轴坐标的间隔为5
chart1.ChartAreas[0].AxisX.IntervalOffset = 0; //设置X轴坐标偏移为0
chart1.ChartAreas[0].AxisX.Minimum = 0;//设置X轴最小值
chart1.ChartAreas[0].AxisX.Maximum = 100;//设置X轴最大值
chart1.ChartAreas[0].AxisX.LabelStyle.IsStaggered = true; //设置是否交错显示,比如数据多的时间分成两行来显示
chart1.ChartAreas[0].AxisX.LabelStyle.Angle = -45;//X轴标签的角度
chart1.ChartAreas[0].AxisY.LabelStyle.Format = "0%";//Y轴标签以百分数格式显示
chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = false;//不显示网格线
chart1.ChartAreas[0].AxisY.Minimum = 0.0;
chart1.ChartAreas[0].AxisY.Maximum = 1.0;
chart1.ChartAreas[0].AxisY.Interval = 0.1;
chart1.Legends[0].Enabled = false;//不显示图例
chart1.ChartAreas[0].BackColor = Color.White;//设置背景为白色
chart1.ChartAreas[0].Area3DStyle.Enable3D = true;//设置3D效果
chart1.ChartAreas[0].Area3DStyle.PointDepth = 50;
chart1.ChartAreas[0].Area3DStyle.PointGapDepth = 50;//设置一下深度,看起来舒服点……
chart1.ChartAreas[0].Area3DStyle.WallWidth = 0;//设置墙的宽度为0;
//chart1.Series[0].Label = "#VAL{P}";//设置标签文本 (在设计期通过属性窗口编辑更直观) 标签变成百分数
//chart1.Series[0].IsValueShownAsLabel = true;//显示标签
chart1.Series[0].CustomProperties = "DrawingStyle=Cylinder, PointWidth=1";//设置为圆柱形 (在设计期通过属性窗口编辑更直观)
chart1.Series[0].Palette = System.Windows.Forms.DataVisualization.Charting.ChartColorPalette.Pastel;//设置调
this.chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = System.Drawing.Color.Red;
this.chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = System.Drawing.Color.Red;
//设置标题
this.chart1.Titles.Clear();
this.chart1.Titles.Add("S01");
this.chart1.Titles[0].Text = "XXX显示";
this.chart1.Titles[0].ForeColor = Color.RoyalBlue;
this.chart1.Titles[0].Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
//设置图表显示样式
this.chart1.Series[0].Color = Color.Red;
for (int j = 0; j < 100; j++)
chart1.Series[0].Points.AddXY(j, j/100.0);
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
好看点了吧!!!
- 通过vmstat的简单分析数据库操作 (r3笔记23天)
- 海量数据迁移之一个误操作的问题总结(r3笔记第21天)
- 关于dblink锁定带来的问题(r3笔记第20天)
- 利用sql语句解决简单的数学题(r3笔记第19天)
- 用XGBoost做时间序列预测—forecastxgb包
- 数据挖掘算法(logistic回归,随机森林,GBDT和xgboost)
- 关于修改数据库参数的测试(r3笔记第18天)
- 50多条实用mysql数据库优化建议
- 关于查询转换的一些简单分析(一) (r3笔记第37天)
- 简单实用的sql小技巧(第一篇) (r3笔记第36天)
- 关于修改分区表的问题总结 (r3笔记35天)
- 利用Python绘制MySQL数据图实现数据可视化
- 生产环境sql语句调优实战第九篇(r3笔记第34天)
- python数据分析之股票实战
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- pytorch随机采样操作SubsetRandomSampler()
- Pytorch上下采样函数–interpolate用法
- scrapy框架携带cookie访问淘宝购物车功能的实现代码
- 浅析Python __name__ 是什么
- PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
- PHP后期静态绑定实例浅析
- php+mysql开发中的经验与常识小结
- PHP时间戳和日期相互转换操作实例小结
- php json转换相关知识(小结)
- PHP单例模式应用示例【多次连接数据库只实例化一次】
- 踩坑:pytorch中eval模式下结果远差于train模式介绍
- Python读取二进制文件代码方法解析
- Python3 webservice接口测试代码详解
- php往mysql中批量插入数据实例教程
- PHP类与对象后期静态绑定操作实例详解