winform chart 图表
图表传值
private void timer1_Tick(object sender, EventArgs e)
{
//MessageBox.Show("1");
// 生成一个0到40之间的随机数
Random random = new Random();
double newValue = random.Next(0, 41);
//AddDataPoints1(newValue);
//AddDataPoints2(newValue);
button6_Click(null,null);
}
private void AddDataPoints1(double value)
{
// 清除旧的数据点
this.chart1.Series["DataSeries"].Points.Clear();
// 添加新的数据点
this.chart1.Series["DataSeries"].Points.AddXY("当前", value);
}
图表初始化
private void InitializeChart1()
{
// 创建一个新的图表区并命名为 "MainChartArea"
ChartArea chartArea = new ChartArea("MainChartArea");
chartArea.AxisX.Title = "时间";
chartArea.AxisY.Title = "数值";
chartArea.AxisY.StripLines.Clear();
this.chart1.ChartAreas.Add(chartArea);
// 添加一个数据系列,并指定其为柱状图类型
Series series = new Series("DataSeries");
series.ChartType = SeriesChartType.Column;
series.IsVisibleInLegend = false; // 不显示图例
this.chart1.Series.Add(series);
chart1.ChartAreas[0].AxisY.LineColor = Color.White;//Y轴线白色
chart1.ChartAreas[0].AxisY.LabelStyle.ForeColor = Color.White;//刻度值颜色
chart1.ChartAreas[0].AxisY.MajorTickMark.Enabled = false;//隐藏刻度线
// 设置图表的宽度(根据需求调整)
this.chart1.Width = 100; // 设置图表宽度为 500(根据需要调整)
this.chart1.Height = 850;
// 设置标题
this.chart1.Titles.Add("温度柱状图");
// 移除所有图例
this.chart1.Legends.Clear();
}
winform chart控件怎么去掉y轴刻度
隐藏 chart Y轴的刻度值
chart2.ChartAreas[0].AxisY.LineColor = Color.White;//Y轴线白色
chart2.ChartAreas[0].AxisY.LabelStyle.ForeColor = Color.White;//刻度值颜色
chart2.ChartAreas[0].AxisY.MajorTickMark.Enabled = false;//隐藏刻度线
System.InvalidOperationException:“阅读器关闭时尝试调用 MetaData 无效
阅读器关闭时尝试调用 Read 无效”了。这里需要说明的是,在数据读取完毕之后,不再需要SqlDataReader时,必须将其进行手动关闭。因为cmd.ExecuteReader(CommandBehavior.CloseConnection)虽然可以实现关闭SqlDataReader后自动关闭连接,但是SqlDataReader必须手动关闭,上面的代码中如果去掉dr.Close(),则Response.Write(dr.IsClosed.ToString()+"<br/>")输出为False,也就是说指定的 SqlDataReader 实例没有关闭。
在MSDN中也有描述:在使用 SqlDataReader 时,关联的 SqlConnection 正忙于为 SqlDataReader 服务,对 SqlConnection 无法执行任何其他操作,只能将其关闭。除非调用 SqlDataReader 的 Close 方法,否则会一直处于此状态。
由此看来,网上有人说不用手动关闭SqlDataReader的说法是不对的。
winform 中 Chart 画折线图
winform 中 Chart 画折线图
private void LoadTempQuxian() { // 执行查询并获取数据表 string sql1 = "SELECT * FROM [wendu]"; DataTable dt = sqlhelper.GetDataTable(sql1);
private void LoadTempQuxian()
{
// 执行查询并获取数据表
string sql1 = "SELECT * FROM [wendu]";
DataTable dt = sqlhelper.GetDataTable(sql1);
// 创建一个新的图表区
ChartArea chartArea = new ChartArea("QuxianChart");
chartArea.AxisX.Title = "时间";
chartArea.AxisY.Title = "温度";
chartArea.AxisY.Minimum = 0;
chartArea.AxisY.Maximum = 40;
chartArea.AxisY.IsMarginVisible = false;
chartArea.AxisY.IsStartedFromZero = true;
chartArea.AxisY.MajorTickMark.Enabled = false;
chartArea.AxisY.LabelStyle.Enabled = false;
chartArea.AxisY.MajorGrid.Enabled = false;
chartArea.AxisY.MinorGrid.Enabled = false;
// 设置图表背景颜色
this.chart3.BackColor = System.Drawing.Color.White; // 设置整个图表的背景颜色
// 设置图表区(ChartArea)的背景颜色
chartArea.BackColor = System.Drawing.Color.White; // 设置图表区域的背景颜色
// 让X轴精确到秒
chartArea.AxisX.LabelStyle.Format = "yyyy-MM-dd HH:mm:ss";
//chartArea.AxisX.IntervalType = DateTimeIntervalType.Seconds; // 设置X轴刻度为秒
//chartArea.AxisX.Interval =6; // 每秒一个刻度
//chartArea.AxisX.MajorGrid.Enabled = true; // 显示主网格
this.chart3.ChartAreas.Clear(); // 如果需要刷新 ChartArea,可以加这一行
this.chart3.ChartAreas.Add(chartArea);
if (!this.chart3.Titles.Any(t => t.Text == "温度折线图"))
{
this.chart3.Titles.Add("温度折线图");
}
this.chart3.Legends.Clear();
// 清除已有的 Series 数据
this.chart3.Series.Clear();
Series seriesModel1 = new Series("设备1");
seriesModel1.ChartType = SeriesChartType.Line;
seriesModel1.Color = System.Drawing.Color.Yellow;
Series seriesModel2 = new Series("设备2");
seriesModel2.ChartType = SeriesChartType.Line;
seriesModel2.Color = System.Drawing.Color.Green;
foreach (DataRow row in dt.Rows)
{
DateTime time = Convert.ToDateTime(row["date"]);
var model = row["bianhao"].ToString();
double temperature = Convert.ToDouble(row["wendu"]);
if (model == "设备1")
{
seriesModel1.Points.AddXY(time, temperature);
}
else if (model == "设备2")
{
seriesModel2.Points.AddXY(time, temperature);
}
}
this.chart3.Series.Add(seriesModel1);
this.chart3.Series.Add(seriesModel2);
this.chart3.Invalidate();
}
}横坐标时间精确到秒