vs2010 c# 如何用chart绘制折线图,

zhq1001 2012-05-11 01:47:08
默认的是柱状图,

想绘制折线图,百度、google查到的几乎都是柱状图、饼图,如何绘制折线图呢?
...全文
11836 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liushaoqing0208 2012-08-15
  • 打赏
  • 举报
回复
能帮我看看吗?谢谢了
protected void Page_Load(object sender, EventArgs e)
{
string fileNameString = "table1.mdb";
string myConnectionString = "Data Source=SH-DT12;Initial Catalog=Table1;Integrated Security=True";
string mySelectQuery = "SELECT * FROM Table1";
SqlConnection myConnection = new SqlConnection(myConnectionString);
SqlCommand myCommand = new SqlCommand(mySelectQuery, myConnection);
myCommand.Connection.Open();
SqlDataReader myreader=myCommand.ExecuteReader(CommandBehavior.CloseConnection);
Chart1.DataBindTable(myreader,"id");
myConnection.Close();
DataTable dt = default(DataTable);
dt = CreateDataTable();
Chart1.DataSource = dt;
for (int i = 0; i < 7; i++)
{
Chart1.Series[0].Points.AddXY("id", "Date");
}
Chart1.Series[0].ChartType = SeriesChartType.Spline;
Chart1.Series[0].YValueMembers = "Volume1";
Chart1.Series[1].YValueMembers = "Volume2";
Chart1.Series[0].XValueMember = "Date";
Chart1.DataBind();
}
private DataTable CreateDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("Date");
dt.Columns.Add("Volume1");
dt.Columns.Add("Volume2");
return dt;
}
}
我这个循环对吗?数据库设计下面图,你那个aaa代表什么啊,我要查询这七个数,要求显示成折线图,但是我运行的结果是柱形图,你帮我看看行吗?谢谢
id yi er s d e t g
1 14 2 5 6 6 4 8
2 4 5 6 6 7 5 6
mizuho_2006 2012-05-11
  • 打赏
  • 举报
回复
下面是我写过的,记录过车重量变化的折线图,用的是第三方的XtraChart控件


if (chartControlCar.Series == null)
return;
chartControlCar.DataSource = null;
chartControlCar.SeriesDataMember = null;
chartControlCar.Series.Clear();

Series S1 = new Series("",ViewType.Line); //定义该折线的名称和类型

Legend lg = chartControlCar.Legend; //不显示折线名称
lg.Visible = false;

S1.ArgumentScaleType = ScaleType.Numerical; //X轴为数值型
S1.ValueScaleType = ScaleType.Numerical; //Y轴为数值型

((LineSeriesView)S1.View).LineMarkerOptions.Visible = false; //不显示折线节点
PointSeriesLabel label = (PointSeriesLabel)S1.Label;
label.Visible = false; //不显示节点数值

switch (strLineStyle) //设置线条类型
{
case "DASH":
((LineSeriesView)S1.View).LineStyle.DashStyle = DashStyle.Dash;
break;
case "DOT":
((LineSeriesView)S1.View).LineStyle.DashStyle = DashStyle.Dot;
break;
case "DASHDOT":
((LineSeriesView)S1.View).LineStyle.DashStyle = DashStyle.DashDot;
break;
case "SOLID":
((LineSeriesView)S1.View).LineStyle.DashStyle = DashStyle.Solid;
break;
default:
((LineSeriesView)S1.View).LineStyle.DashStyle = DashStyle.Solid;
break;
}

S1.PointOptions.PointView = PointView.Argument;

for(int i=0;i<strArrayWeights.Length;i++)
{
//X轴为二次表数值显示变化次数,Y轴为重量值
S1.Points.Add(new SeriesPoint(i + 1, new double[] { double.Parse(strArrayWeights[i]) }));
}

chartControlCar.Series.Add(S1);

XYDiagram diagram = (XYDiagram)chartControlCar.Diagram;
diagram.AxisY.Range.MaxValue = intAxisYMaxValue; //设置Y轴显示最大值
diagram.AxisY.Range.MinValue = intAxisYMinValue; //设置Y轴显示最小值
香肠 2012-05-11
  • 打赏
  • 举报
回复
2楼正解。
建议去下载一个MChartWinSamples,有很多例子,很全。
请叫我卷福 2012-05-11
  • 打赏
  • 举报
回复
还是自己写一个 折线图 控件吧
如果只是显示简单的折线 不需要其他的复杂功能
wangsong145 2012-05-11
  • 打赏
  • 举报
回复
折线图还是柱形图只是一个图形类型而已,你修改下Chart的图形类型属性就可以了啊
facelessvoidhj 2012-05-11
  • 打赏
  • 举报
回复

先循环把点加进去
for()
{
Chart1.Series["aaaa"].Points.AddXY(横坐标的值,纵坐标的值);
}
设置图表类型
Chart1.Series["aaaa"].ChartType=SeriesChartType.****
SeriesChartType是个枚举,包含很多图表类型,有柱状图,饼状图,自己看看就行了。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧