社区
C#
帖子详情
怎么用C#画 Bar 图?
crane_9988
2006-12-07 06:44:55
我想将数据库中的数据用Bar的图形表示出来,, 以前我是用Excel做的,先将数据库中的值取到excel中,然后用VBA将图形画出来, 不过这样好想太麻烦了,
请问有没有别的方法用C# 画 Bar 图?????????? 谢谢啦。。。。
...全文
233
10
打赏
收藏
怎么用C#画 Bar 图?
我想将数据库中的数据用Bar的图形表示出来,, 以前我是用Excel做的,先将数据库中的值取到excel中,然后用VBA将图形画出来, 不过这样好想太麻烦了, 请问有没有别的方法用C# 画 Bar 图?????????? 谢谢啦。。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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#
wpf中动态添加ProgressBar
C#
WPF 在ListView 中 动态添加ProgressBar, 开发环境vs
C#
完整教程
C#
完整教程以下是目录: 第一章
C#
语言基础 5 1.1
C#
语言特点 5 1.2 编写控制台应用程序 6 1.3 类的基本概念 10 1.4
C#
的数据类型 13 1.5 运算符 20 1.6 程序控制语句 23 1.7 类的继承 26 1.8 类的成员 28 1.9 类的...
C#
高级程序设计
紧跟微软
C#
发展,使用
C#
语言和开发环境版本 2. 结合应用案例,力求做到深入浅出,明白易懂 3. 重要概念附有英文翻译 4. 独家附赠一个面试经验分享,希望每位学生都可以从中受益,在面试中脱颖而出 5.含宿舍管理系统...
C#
WPF 控件的例子
Bar
画
成Vista的样式
C#
for CSDN 乱七八糟的看不懂
C#
(WINFORM)学习 一、
C#
基础 基础 类型和变量 类型和变量 类型
C#
支持两种类型:“值类型”和“引用类型”。值类型包括简单类型(如 char、int 和 float 等)、枚举类型和结构类型。引用类型包括类 (Class)类 ...
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章