【问题标题】:Building a scatterplot class构建散点图类
【发布时间】:2012-04-16 00:36:16
【问题描述】:

这是我认为应该在 C# 中构建散点图的方式(在相当高的抽象级别上)。

  1. 创建空白图像
  2. 使用 TextRenderer 绘制轴标签和刻度(水平不会那么简单,但仍然易于管理)。
  3. 画一些线作为坐标轴上的刻度线和坐标轴本身的线
  4. 根据某些数据集中列出的点画一些圆圈(不是 100% 的方法,但不会太难)。
  5. 在图片框中显示图像。
  6. 创建一个将在 MouseHover 上调用的函数,该函数将在工具提示中显示有关该点的一些详细信息。

这有意义吗?我是否在工作中使用了错误的控件? .NET 中是否有一些代码已经可以完成大部分工作(图表类似乎只适用于条形图)?有没有办法从 C# 访问 excel 的绘图功能?

对我来说,所有这些似乎都是做作的,我希望能提供有关如何更好地设计散点图类的意见。

【问题讨论】:

  • 微软图表控件仅适用于条形图绝对不是真的。我会看看样本:archive.msdn.microsoft.com/mschart
  • @mikez,感谢您引起我的注意,将其发布为答案,我会将其标记为正确。

标签: c# winforms


【解决方案1】:

Microsoft Chart Controls 库可以做的远不止条形图。它包含在 .NET 4 框架中,但也可作为单独的 download 用于 .NET 3.5 SP1。示例可通过here 获取,并演示了大部分主要功能。

【讨论】:

    【解决方案2】:

    不,这确实有道理。我真的不知道“专业人士”是如何做到的,但是当你需要一个快速的散点图时,你会怎么做。需要记住的一些事项:

    • 您希望 Draw() 方法位于顶部并获取数据点的变换坐标。这是因为您最终会想要缩放和平移。从 3D 图形编程中获取页面并仅使用显式转换矩阵(XNA 中有一些)可能会为您省去很多麻烦。
    • 您可能希望拥有一个通用的“绘制点”函数,该函数调用专门的子例程来绘制单个点,这样您就可以轻松地在不同类型的点(十字、圆、点、正方形、菱形等)之间切换)。还有颜色。
    • 您打算如何处理大量数据点?根据我的经验,这很快就会使一个考虑不周的 Chart API 陷入停顿。

    【讨论】:

      猜你喜欢
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      • 2013-04-20
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多