社区
C#
帖子详情
怎么用C#画 Bar 图?
crane_9988
2006-12-07 06:44:55
我想将数据库中的数据用Bar的图形表示出来,, 以前我是用Excel做的,先将数据库中的值取到excel中,然后用VBA将图形画出来, 不过这样好想太麻烦了,
请问有没有别的方法用C# 画 Bar 图?????????? 谢谢啦。。。。
...全文
238
10
打赏
收藏
怎么用C#画 Bar 图?
我想将数据库中的数据用Bar的图形表示出来,, 以前我是用Excel做的,先将数据库中的值取到excel中,然后用VBA将图形画出来, 不过这样好想太麻烦了, 请问有没有别的方法用C# 画 Bar 图?????????? 谢谢啦。。。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
crane_9988
2006-12-07
打赏
举报
回复
我想画一个这样的柱形图!! 比如说, 我有数据:
cat 0.5 0.7 1.2 1.6
dog 0.7 1.3 1.9 2.1
house 1.3 0.6 0.9 0.8
以上的数据有四行,,在画柱形图的时候,,我想第一行用一种颜色,第二行用另一种颜色,柱的长度由相应的大小来决定,又谁有相关的程序吗?
mlhy20060406
2006-12-07
打赏
举报
回复
mark
huazi4995
2006-12-07
打赏
举报
回复
ding
早起晚睡
2006-12-07
打赏
举报
回复
//**************在form上绘制******************
//Graphics g = this.CreateGraphics();
//********************************************
//*************在背景图上绘制*****************
//pic = new PictureBox();
//pic.Size = new Size(this.ClientSize.Width, ClientSize.Height);
//pic.Location = new Point(0, 0);
//pic.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
map = new Bitmap(@"./Sunset.jpg");
// map = new Bitmap(this.ClientSize.Width, ClientSize.Height);
g = Graphics.FromImage(map);
// g.Clear(Color.Black);
this.BackgroundImage = map;
//pic.BackgroundImage = map;
//pic.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
//this.Controls.Add(pic);
//********************************************
DataTable dtl = new DataTable();
string ElementName = "";
DaoCa daocha = new DaoCa(g);
Pen myPen = new Pen(Color.FromArgb(100,100,100), 6);
Font drawFont = new Font("Arial", 8);
DataTable dt = new DataTable(); //定义datatable
int xx1 = 0, xx2 = 0, yy1 = 0, yy2 = 0, xx = 0, dd,ll=0;
dt = db.createDataTable("select * from ElementList ");//通过DB类进行数据库的查询返回datatable
int asd = dt.Rows.Count;
for (int i = 0; i < asd; i++)
{
xx1 = System.Convert.ToInt16(dt.Rows[i][4].ToString());
yy1 = System.Convert.ToInt16(dt.Rows[i][5].ToString());
xx2 = System.Convert.ToInt16(dt.Rows[i][6].ToString());
yy2 = System.Convert.ToInt16(dt.Rows[i][7].ToString());
xx = System.Convert.ToInt16(dt.Rows[i][8]);
dd = System.Convert.ToInt16(dt.Rows[i][1]);
ll=System.Convert.ToInt16(dt.Rows[i]["eloprtype"]);
//ElementName = dt.Rows[i]["eleactid"].ToString();//获取元素名字bjg
//string sqlstr = "select a.*,b.Btype from dbo.ElementList a ";
// sqlstr += "inner join humpstation.dbo.RailBranch b ";
// sqlstr += "on b.BRelate=a.eleactid where b.BElementID='" + ElementName + "'";
if (xx2 == 0 && yy2 == 0 && dd == 5)
{
g.DrawString(dt.Rows[i][2].ToString(), drawFont, Brushes.Green, xx1, yy1);//在背景图上填写字符串
}
if (xx2 == 0 && yy2 == 0 && xx == 372)
{
g.FillEllipse(Brushes.Green, xx1, yy1, 12, 12);//画信号机
}
if (xx2 == 0 && yy2 == 0 && xx == 20)
{
// g.FillEllipse(Brushes.Red, xx1, yy1, 12, 12);//画道岔
}
else
{
if(ll==61 || ll== 62||ll==63)
{
//g.DrawLine(Pens.Green, xx2, yy2, xx1, yy1);
g.DrawRectangle(Pens.Green, xx1, yy1-3, (xx2 - xx1)/2, 6);
g.DrawRectangle(Pens.Green, (xx2+xx1)/2, yy1-3, (xx2 - xx1) / 2, 6);
}
else
if (xx1 != 0 && yy2 != 0)
g.DrawLine(myPen, xx2, yy2, xx1, yy1);//画直线
}
}
dt = db.createDataTable("select * from ElementList ");
// sqlconn
for (int i = 0; i < asd; i++)
{
xx1 = System.Convert.ToInt16(dt.Rows[i]["elstartx"].ToString());
yy1 = System.Convert.ToInt16(dt.Rows[i]["elstarty"].ToString());
xx2 = System.Convert.ToInt16(dt.Rows[i]["elendx"].ToString());
yy2 = System.Convert.ToInt16(dt.Rows[i]["elendy"].ToString());
// xx = System.Convert.ToInt16(dt.Rows[i][8]);
// dd = System.Convert.ToInt16(dt.Rows[i][1]);
ll = System.Convert.ToInt16(dt.Rows[i]["eloprtype"]);
ElementName = dt.Rows[i]["eleactid"].ToString();//获取元素名字bjg
if(ll==200)
{
string sqlstr = "select a.*,b.Btype from dbo.ElementList a ";
bool stype = false;
sqlstr += "inner join humpstation.dbo.RailBranch b ";
sqlstr += "on b.BRelate=a.eleactid where b.BElementID='" + ElementName + "'";
sda =new SqlDataAdapter(sqlstr,sqlconn);
sda.Fill(dtl);
if (dtl.Rows.Count > 0)
{
for (int j = 0; j < dtl.Rows.Count; j++)
{
xx2 = System.Convert.ToInt16(dtl.Rows[j]["elstartx"].ToString());
yy2 = System.Convert.ToInt16(dtl.Rows[j]["elstarty"].ToString());
stype = (bool)dtl.Rows[j]["Btype"];
if(yy1!=yy2)
daocha.MoveTo(new PointF(xx1 + 6, yy1 + 6), new PointF(xx2 + 6, yy2 + 6), !stype, true, Brushes.Red);
}
}
}
dtl.Clear();
}
早起晚睡
2006-12-07
打赏
举报
回复
GDI画图
灰太狼
2006-12-07
打赏
举报
回复
參見
http://blog.csdn.net/tjvictor/archive/2006/11/25/1414011.aspx
中柱形圖。
totoz
2006-12-07
打赏
举报
回复
用GDI+
孟子E章
2006-12-07
打赏
举报
回复
方法类似
http://dotnet.aspx.cc/article/221bc601-1a1b-4e1f-883d-04b043659703/read.aspx
大飞飞虫
2006-12-07
打赏
举报
回复
有的,你创建一个母图片(或新建一个图片对象)的graphic接口就好了,可以在一张白图上画矩形条就可以了。
矩形的高度就是数据。
ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_fxmclignrl/html/a98a76ab-e455-49c9-891c-0491ac932f2c.htm
crane_9988
2006-12-07
打赏
举报
回复
ding
C#
绘制统计
图
形
在
C#
中,我们可以使用GDI+(Graphics Device Interface Plus)或第三方库如LiveCharts、OxyPlot来绘制柱状
图
。GDI+提供了一组强大的绘
图
函数,允许程序员直接在窗体或
图
片上绘制
图
形。例如,你可以创建一个`Graphics...
C#
2D绘
图
,可用于实时监控温度,或者设备状态
例如,我们可以使用LineSeries或其他
图
表类型(如AreaSeries或BarSeries)来表示温度随时间的变化。SharpGraphLib库可能提供了这些高级
图
表组件,使得开发者无需从零开始构建
图
表,而是可以直接使用预定义的控件和...
用
C#
2017_WPF实现柱状
图
、饼
图
、折线
图
样例.rar
在“用
C#
2017_WPF实现柱状
图
、饼
图
、折线
图
样例”这个压缩包中,你可能找到了一个包含以下组成部分的项目: 1. **模型类**:这些类通常包含用于表示数据的属性,如`BarItem`、`PieSection`和`LinePoint`。 2. **...
C#
Gpi
画
柱
图
、饼
图
首先,让我们深入了解一下如何使用
C#
GDI+来
画
柱
图
。柱状
图
是一种常用的数据可视化方式,它通过垂直或水平的柱子长度来表示数据的大小。以下是一些关键步骤: 1. **初始化绘
图
对象**: 创建`Graphics`对象,这通常是...
C#
progress bar 自定义控件
在
C#
编程中,进度条控件(Progress Bar)是一种常用UI元素,用于展示应用程序执行某项长时间操作的进度。自定义控件是开发者根据需求扩展标准控件功能的一种方式,以便提供更丰富的视觉效果或行为。在这个项目中,...
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章