Tag: 图表

绘制大量数据

我们目前正在使用ZedGraph绘制一些数据的折线图。 输入数据来自任意大小的文件,因此,我们事先不知道最大数据点数是多少。 但是,通过打开文件并读取标题,我们可以找出文件中有多少数据点。 文件格式基本上是[时间(双精度),值(双精度)]。 但是,条目在时间轴上不一致。 在t = 0秒和t = 10秒之间可能没有任何点,但在t = 10秒和t = 11秒之间可能存在100K,依此类推。 例如,我们的测试数据集文件大约为2.6 GB,它有324M点。 我们想向用户展示整个图表,让她浏览图表。 然而,向ZedGraph加载324M点不仅是不可能的(我们使用的是32位机器),但也没用,因为屏幕上没有这么多点。 使用ZedGraph的FilteredPointListfunction似乎也是不可能的,因为这需要先加载整个数据,然后对该数据执行过滤。 因此,除非我们遗漏任何东西,否则我们唯一的解决方案似乎是 – 以某种方式对数据进行抽取,但是当我们不断努力时,我们遇到了很多问题: 1-我们如何抽取未及时到达的数据? 2-由于无法将整个数据加载到内存中,因此任何算法都需要在磁盘上运行,因此需要仔细设计。 3-我们如何处理放大和缩小,尤其是当数据在x轴上不均匀时。 如果数据是统一的,在初始加载图形时,我们可以通过文件中预定义的条目数量来Seek() ,并选择每N个其他样本并将其提供给ZedGraph。 但是,由于数据不统一,我们必须在选择要显示的样本时更加智能,并且我们无法提出任何不必读取整个文件的智能算法。 我道歉,因为这个问题没有严格的特异性,但我希望我可以解释我们问题的性质和范围。 我们在Windows 32位,.NET 4.0上。

将水平条形图更改为垂直条形图

我正在为我的图表使用’ System.Windows.Forms.DataVisualization.Charting ‘库,我想知道是否有人想出如何切换轴以垂直显示图表 谢谢。

赢表格图表

我可能会问错误的问题,但我需要的是在我的Windows窗体图表中添加“引导线”。 换句话说,我有一个简单数据系列的图表,我需要在通过分数的y轴上绘制一条线,或80%。 我不想添加第二个系列,因为第一个系列具有未确定数量的数据点。 有一种简单的方法可以简单地在y轴上画一条线吗? 下面的虚线是我拍摄的(它不需要箭头)。 100| | 90| | o 80| | 70| oo | 60| o | oo 50|oo |_________________________ 1 2 3 4 5 6 7 8 9

Winforms图表:如何启用背景色标

我正在寻找一种在Winform图表控件库中启用自定义背景色标的方法。 这是一个例子: 在背景中看到绿色,黄色和红色? 现在,我需要一种通过控制开始/结束Y值,颜色本身以及不同颜色的数量来自定义背景色标的方法。 提前致谢!

如何从0 X轴开始制作折线图

我创建了一个折线图,但我希望在X轴上显示从0开始的图表。 我怎样才能做到这一点。 我尝试了一些方法,但仍然没有得到我想要的。 Chart1.ChartAreas[0].AxisX.Interval = 0; Chart1.ChartAreas[0].AxisX.IsStartedFromZero = true; Chart1.ChartAreas[0].AxisX.Minimum = 0; Chart1.ChartAreas[0].AxisX.Crossing = 0; 这就是我现在所做的 这就是我要的 还有一个,如何在图表中设置主要和次要单位..? 我的代码在这里 protected void Page_Load(object sender, EventArgs e) { System.Drawing.Font axisFont = new System.Drawing.Font(“Arial”, 8, System.Drawing.FontStyle.Bold); System.Drawing.Font titleFont = new System.Drawing.Font(“Arial”, 10, System.Drawing.FontStyle.Bold); Chart1.Width = 600; Chart1.Height = 400; Chart1.BorderlineColor = System.Drawing.Color.Black; Chart1.BorderlineWidth = 1; Chart1.BorderlineDashStyle = ChartDashStyle.Solid; […]

wpf不同颜色的面积图?

我是一个沉思MS工具包图表,无法弄清楚如何改变区域的颜色。 我需要动态填充图表,这意味着我不知道区域图表将包含多少部分。 这是我的代码。 var a = new AreaSeries { Title = “a”, IndependentValuePath = “Key”, DependentValuePath = “Value”, Background = Brushes.Plum }; 我试图改变前景和背景,没有骰子。 mcChart.Series.Add(a); a = new AreaSeries { Title = “b”, IndependentValuePath = “Key”, DependentValuePath = “Value”, Background = Brushes.Peru }; mcChart.Series.Add(a); 填写图表。 ((AreaSeries)mcChart.Series[0]).ItemsSource = new[] { new KeyValuePair(“1”, 100), new KeyValuePair(“2”, 180), new […]

如何从WindowsForm中的图表中删除网格线?

如何从图表中删除网格线? 我使用标准的图表库。 谢谢!

使用Microsoft .NET图表控件库生成图像,无需控制

是否可以使用Microsoft Chart Controls库生成图像(jpeg,png等)而无需实例化WinForm或ASP.NET Control类? 我见过的所有例子都使用了控制组件。 我需要创建一个包含简单方法的库,这些方法可以绘制数据并返回一个新的图表图像。 例子: public byte[] GeneratePlot(IList series) { // generate and return JPEG } public void GeneratePlot(IList series, Stream outputStream) { // generate JPEG and write to stream } 如果不可能: 你会建议每次用户调用GeneratePlot()方法时创建/处理新的图表控件吗? 你会推荐另一个.NET库(最好是免费的)吗? 谢谢

如何横向绘制四个(或更多)工作区?

这是一个代码的和平,它绘制1/2/3/4(取决于备注)图表: private void button1_Click(object sender, EventArgs e) { List queue = new List(); queue.Add(1); queue.Add(2); queue.Add(3); queue.Add(4); chart1.ChartAreas.Add(queue[0].ToString()); chart1.ChartAreas.Add(queue[1].ToString()); chart1.ChartAreas.Add(queue[2].ToString()); chart1.ChartAreas.Add(queue[3].ToString()); chart1.Series.Add(“test1”); chart1.Series.Add(“test2”); chart1.Series.Add(“test3”); chart1.Series.Add(“test4”); chart1.Series[“test1”].ChartArea = “1”; chart1.Series[“test2”].ChartArea = “2”; chart1.Series[“test3”].ChartArea = “3”; chart1.Series[“test4”].ChartArea = “4”; Random rdn = new Random(); for (int i = 0; i < 50; i++) { chart1.Series["test1"].Points.AddXY(rdn.Next(0, 10), rdn.Next(0, […]

从TextBoxes中的Chart Values获取绘图点的坐标?

在设计师中我有两个TextBoxes。 还有一个Chart控件。 我希望当我输入第一个textBox时数字120和第二个输入数字1它将在120,1中绘制图表上的点,但我的意思是120和1作为轴x和轴y值。 红色圆圈不在120和1.我的意思是红色圆圈应该在120的左轴上绘制。如果我将代替120 116而不是1 25,那么应该在左轴上绘制圆圈116并在25的底部轴上。 但现在圆圈被绘制出图表。 这是我的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; using System.Drawing.Drawing2D; using System.Collections; namespace Test { public partial class Form1 : Form { private Point startPoint = new Point(); private Point endPoint = new Point(); private […]