首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >寻找绘制科学数据的框架: 2d/3d

寻找绘制科学数据的框架: 2d/3d
EN

Stack Overflow用户
提问于 2010-05-01 12:33:14
回答 6查看 9.7K关注 0票数 9

我需要可视化一些科学计算。如果已经有很好的代码可用,我通常更喜欢重用代码,而不是每次都发明轮子,这就是我问的原因。我需要一个C#代码来绘制二维(y=f(x))和三维(z=f(x,y))数字数据集(其中任何轴可以是浮点数,整型或日期时间)的图表(只输出一个位图是ok),有时组合。

如果我转到here并单击左侧导航栏中的3D,就可以看到我需要的内容。但最便宜的版本要花759美元,对于一个东欧学生的爱好项目来说,看起来很可怕:-(

EN

回答 6

Stack Overflow用户

发布于 2010-05-01 12:47:52

Microsoft Chart Controls是免费的,而且非常强大。微软购买了Dundas图表控件的权利并对其进行了重新打包。是不是很简单?不,这是一个非常强大的控件。但微软也有很好的文档和samples。示例使它看起来像是条形图/饼图/等类型的图表,但它也可以处理面向数学的图表。

票数 6
EN

Stack Overflow用户

发布于 2013-09-23 22:58:00

ILNumerics非常容易学习(不幸的是,当前版本似乎不是免费的)。它将数学引擎与可视化功能(提供Windows窗体控件)相结合。以下是3D散点图的示例:

代码语言:javascript
运行
复制
var colors
  = new[] { Color.Red, Color.Black, Color.Blue, Color.Green /*...*/ };

ILArray<float> data = ILMath.zeros<float>(
  3,
  colors.Length);

ILArray<float> colorData = ILMath.zeros<float>(
  3,
  colors.Length);

int index = 0;
foreach (var p in colors)
{
  data[0, index] = p.GetHue();
  data[1, index] = p.GetSaturation();
  data[2, index] = p.GetBrightness();
  colorData [0, index] = p.R / 255.0f;
  colorData [1, index] = p.G / 255.0f;
  colorData [2, index] = p.B / 255.0f;
  index++;
}

var points = new ILPoints()
{
  Positions = data,
  Colors = colorData 
};

points.Color = null;

var plot = new ILPlotCube(twoDMode: false)
{
  Rotation = Matrix4.Rotation(new Vector3(1, 1, 0.1f), 0.4f),
  Projection = Projection.Orthographic,
  Children = { points }
};

plot.Axes[0].Label.Text = "Hue";
plot.Axes[1].Label.Text = "Saturation";
plot.Axes[2].Label.Text = "Brightness";

this.ilPanel1.Scene = new ILScene { plot };
票数 1
EN

Stack Overflow用户

发布于 2014-12-04 13:09:16

开源工具:

http://plplot.sourceforge.net/index.php

然而,代码是用C编写的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2748897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档