社区
C#
帖子详情
怎么用C#画 Bar 图?
crane_9988
2006-12-07 06:44:55
我想将数据库中的数据用Bar的图形表示出来,, 以前我是用Excel做的,先将数据库中的值取到excel中,然后用VBA将图形画出来, 不过这样好想太麻烦了,
请问有没有别的方法用C# 画 Bar 图?????????? 谢谢啦。。。。
...全文
261
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
分布式发电相关
95598问题: 1、农村分布式发电资金补贴。 2、家庭分布式是否可申请补贴,如何申请。 实行0.42元/千瓦时的补贴,投资回报率很大。“以上海地区为例,按当地的工业用电电费计算,一套20千瓦的系统,以0.42元/千瓦时的分布式电价补贴,约5.5-6年能收回投资成本,未来的20多年,将都是纯收益阶段,这还是在未来常规电费不涨的前提下。” 6步: 第一步,居民最好有独立的场地(
瑞士本地电力社区:技术经济评估与点对点能源交易实践
分布式能源系统正推动能源消费模式从单向供给向点对点交易转变。其核心原理在于通过物联网、智能电表与优化算法,将分散的光伏、储能等资源聚合为虚拟电厂,实现社区内电力的实时匹配与动态定价。这种模式的技术价值在于提升可再生能源就地消纳率、降低电网阻塞压力,并为参与者创造经济收益。在应用场景上,尤其适用于光伏渗透率高、电价差显著的地区,例如瑞士的本地电力社区项目。该项目通过构建包含物理层、数据层与市场层的三层架构,并运用Python进行仿真建模与敏感性分析,量化评估了社区共享的经济效益与可行性,为产消者参与能源市场提
GAMS代码:多家庭微网能量管理与优化调度 关键词:家庭微网 能量管理 优化调度 多微网 参考文档
测试时发现某个社区交易太嗨,导致线路末端电压跌到0.9pu以下,这时候模型就会自动限制该线路的交易功率,同时启动附近家庭的备用电池来抬电压——这智能程度堪比电网老调度员。特别是在变压器容量吃紧的时段,系统会优先在微网内部玩能量平衡。提出了一种新的模型,该模型考虑了邻近地区的产品消费者之间以及他们与网络之间的能源交易,以解释与各种资源和技术的可用性相关的情景形式的一系列不确定性。结果表明,产品消费者之间的能源交易产生了经济效益,从而提高了系统的灵活性,同时强调了网络限制的影响以及与之相关的潜在问题。
本地能源共享系统:从硬件架构到智能调度的完整实践
分布式能源与微电网是能源转型的核心技术,其原理在于将分散的可再生能源(如屋顶光伏)在本地进行高效聚合与优化调度。通过电力电子变换、实时通信与智能控制算法,这类系统能实现电能的精准管理与灵活分配,其技术价值在于显著提升绿电消纳率、降低电网损耗,并为用户创造直接经济收益。典型的应用场景包括居民社区、工业园区等有分布式电源和邻近负荷的区域。本文聚焦于一种基于**能源路由器**硬件的本地点对点(P2P)解决方案,通过**智能控制算法**实现盈余光伏电能在邻里间的自动、安全共享与结算,为社区能源协作提供了可落地的工程
C#
111,128
社区成员
642,533
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章