Tag: mschart

Microsoft图表控件和X轴时间刻度格式

我的winforms应用程序中有一个Microsoft Chart Controls。 我目前在循环中播放X和y值。 我也将X轴格式设置为 ChartAreas[0].AxisX.LabelStyle.Format={“00:00:00”} 这作为时间格式工作正常,但是我注意到一旦我的时间值超过60秒(即00:00:60),而不是比例移动到1分钟(即00:01:00)它变为61 (即00:00:61)一直到99分(00:00:99)然后(00:01:00) 有没有办法解决这个问题?

如何在ms图表中更改X轴标签的方向

嗨我在winforms应用程序中使用Ms chart控件来显示根据日期的值 我需要将x轴标签值(Dates)方向改为垂直方向 我搜索了很多属性,但我没有找到任何解决方案。 任何人都可以帮我解决这个问题 非常感谢 ….

烛台多个Y值

我的任务是使用Windows窗体中的MSChart制作烛台图。 我已经成功制作了一个没有问题的3D条形图。 但经过长时间的互联网搜索,微软的源代码(WinSamples)以及大量的头像,我无法找到创建烛台图的正确方法。 什么可以帮助我是一个明确的例子,在图表中添加一个系列,其中包含多个Y值或我的代码的更正(当我运行时,调试没有显示为图例标签的exept)。 奖励是该示例基于OleDB(我的值在Access数据库中)。 所以我的问题是:如果你有在Windows窗体中用C#创建烛台图表的经验,你可以给我一个提示或(甚至更好)你能给我一些c#代码吗? 这是我当前(不工作)的代码: using System.Windows.Forms.DataVisualization.Charting; public partial class CandleStick : Form { public CandleStick() { InitializeComponent(); } private void CandleStick_Load(object sender, EventArgs e) { GrafiekLaden(); } public void GrafiekLaden() { Koers k = new Koers(); // This method fills up a list, the data comes from my database // it contains […]

MS图表中的自动间隔精度

我目前正在使用System.Windows.Forms.DataVisualization.Charting.Chart在.NET中使用图表。 到目前为止,它似乎非常强大,而且效果很好。 然而,就如何自动计算间隔而言存在巨大的问题。 我使用了很多double值,在像ZedGraph这样的库中,它完美地处理了这个问题。 它选择最小/最大/间隔就好了。 但是,在MS Chart中,它可以选择206.3334539832作为最小值,并选择相似小数精度的间隔。 显然这看起来很难看。 因此,我尝试简单地制作轴格式{0.00}并且在加载图表时效果很好。 除非你放大,你需要更高的精度,可能是4位小数而不是2位。看起来我要么一直处于9个小数位,要么是一个固定的常数,当有人需要更高的精度时它可能会破坏。 我宁愿根据当前应用的缩放级别来获取精度。 像ZedGraph和Dundas这样的图书馆(我相信MS甚至正在使用!)倾向于选择在放大和缩小时改变的好值。 当缩放框架改变时,有没有办法让间隔改变精度? 这可能是我设置错误的一些简单属性,但很难说这个东西有数百万个属性(特别是当大约有14个地方代表Interval的概念时)。

当鼠标在点上时,查看图表点的值

我有一个图表,我希望用户在指针位于点上时看到值。 通过在页面中使用digEmAll的帮助查找图表中点的值 ,我可以编写以下代码: Point? prevPosition = null; ToolTip tooltip = new ToolTip(); void chart1_MouseMove(object sender, MouseEventArgs e) { var pos = e.Location; if (prevPosition.HasValue && pos == prevPosition.Value) return; tooltip.RemoveAll(); prevPosition = pos; var results = chart1.HitTest(pos.X, pos.Y, false, ChartElementType.PlottingArea); foreach (var result in results) { if (result.ChartElementType == ChartElementType.PlottingArea) { chart1.Series[0].ToolTip = “X=#VALX, Y=#VALY”; […]

MS图表控件中的对数垂直和水平轴线

该图像呈现对数图。 我想使用MS Chart控件创建一个类似的图形。 我知道有一种方法可以将法线图转换为对数图,但我无法创建垂直和水平轴线(浅灰色),类似于下图。

MSChart Y轴和X轴标记

我将数据绘制到MSChsart线图上。 在Y轴上,我的值范围为0 300.任何人都可以告诉我是否可能 改变我的: Y轴LABEL值从(0到300)到值(-150到150)。 不改变我的Y轴DATA值。 我的意思是我希望标签显示不同的值,但我不想编辑我绘制的数据值。 因此,例如,如果我在Y轴值为150时绘制数据,则Y =轴标签应显示为0。 任何帮助将不胜感激

强制x轴上的点之间的间隙(MS .Net图表控件,柱形图)

我有一个包含多个系列的柱形图,每个系列包含多个点。 目前这些列都互相接触。 我想强制每列之间的差距。 我怎样才能做到这一点? 我发现应用PointWidth( Chart1.Series[seriesName][“PointWidth”] = (0.6).ToString(); )给出了x值组之间的分离,但不是单个组中每个系列点之间的分离(我需要)。 使用其他地方建议的空间隔系列并不能解决问题。 我正在使用.Net 4,VS 2010,Web Application。 我的图表代码如下: using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Web.UI; using System.Web.UI.DataVisualization.Charting; namespace WebApplication1 { public partial class _Default : Page { protected void Page_Load(object sender, EventArgs e) { Chart1.ChartAreas.Add(“Default”); Chart1.ChartAreas[“Default”].BackColor = Color.White; Chart1.ChartAreas[“Default”].BackSecondaryColor = Color.AliceBlue; Chart1.ChartAreas[“Default”].BackGradientStyle = GradientStyle.TopBottom; Chart1.BackColor […]

在MS Chart控件中绘制x = 0的两个y值

我在MS Chart for Windows Forms中发现了一种奇怪的行为。 假设我想要一个带有两个点(1,10)和(1,20)的散点图。 我可以这样做: …. Series series = new Series(); series.ChartType = SeriesChartType.Point; double[] x = { 1, 1 }; double[] y = { 10, 20 }; series.Points.DataBindXY(x, y); 这很好。 但现在我想要相同的结果,但两个x值都应为0 。 double[] x = { 0, 0 }; double[] y = { 10, 20 }; series.Points.DataBindXY(x, y); 在这种情况下,图表控件在’自动生成’x位置1和2处创建两个数据点。它只是忽略给定的x值。 如果我使用它是相同的行为 series.Points.AddXY(0, 10); […]

如何在饼图中设置图例中的不同标签

我正在做一个里面有Pie Chart的窗口表格。我需要显示饼图的百分比。 但现在我遇到了一个问题:当我将#PERCENT{P2}添加到系列时, Pie Chart将显示如下: 但如果我删除它, Pie Chart将显示如下 是否有可能像这样制作Pie Chart ? 我的代码: DataTable dt = new DataTable(); dt.Columns.Add(“completed”, typeof(string)); dt.Columns.Add(“no”, typeof(int)); int noin = allitem – intime; dt.Rows.Add(“Complete In Time”, intime); dt.Rows.Add(“OverDue”, noin); chart1.DataSource = dt; chart1.DataBind();