【问题标题】:Stop .Net Chart (DataVisualization) From ReSizing To Tiny Chart?停止 .Net 图表(数据可视化)从调整大小到小图表?
【发布时间】:2021-02-06 05:38:02
【问题描述】:

我有一个图表,它的 x 轴有字符串(名称列表)。它链接到一个动态数组,我有一个问题,即图形调整自身大小并从数组中压缩 14-15 个字符串并使条形图变得又小又小。

即使在运行时将新值添加到 x 轴,如何实现粗条和滚动条以向下滚动以查看其余数据。

在没有帮助的情况下花了一个小时搜索! =[

编辑: 将 PixelPointWidth 属性设置为 300 给了我想要的条形宽度,但它已经将条形集束在一起,因此 4 系列的所有条形都是重叠的,而不是并排的。从这里到哪里去?

编辑2:

操纵图表高度肯定会得到想要的结果,唯一的问题是高度越大,图表顶部的空白越多,有什么解决办法。并修复了系列表示在滚动时“冻结”的问题。

【问题讨论】:

  • 我从来没有真正使用过Chart 控件,所以我不知道它是否有内置的东西,但如果没有,一种选择是将Chart 放在@987654325 中@ 并让 Panel 调整大小并提供滚动条,而 Chart 保持相同大小。
  • 将新项目添加到 x 轴后,图表会自动调整大小
  • 我认为您通常会通过调用 ChartArea 的 AxisX 属性的 AxisScaleView.Zoom 方法来执行此操作,这将创建图表数据的可滚动视图。为点的 x 值设置字符串会使事情变得有些复杂,但 Series.IsXValueIndexed 属性在这种情况下可能很有用。

标签: vb.net charts bar-chart mschart


【解决方案1】:

您可以在每次添加新数据时设置图表的宽度:

Dim barWidth = Double.Parse(Chart1.Series(0)("PixelPointWidth"))
Chart1.Width = CInt(nData * barWidth) + 100

其中nData 是有多少个点,而 100 是考虑到 Y 轴标签和图例所需空间的某个数量。

将图表控件以suggested by jmcilhinney 的形式放在Panel 中,AutoScroll 设置为true,当图表的宽度超过面板的宽度时,您将获得一个滚动条。

如果希望图表显示最新添加的数据,可以在设置图表宽度后设置水平滚动位置:

Panel1.HorizontalScroll.Value = Panel1.HorizontalScroll.Maximum

【讨论】:

  • 感谢您的回复安德鲁。我以 x 轴和 y 轴颠倒并且条形水平而不是垂直延伸的方式使用图表。同样的规则适用?
  • @StavrosPehlivanidis 是的,试试Vertical 而不是Horizontal 和图表的高度而不是它的宽度。
  • 我在 Dim barWidth = Double.Parse(Chart1.Series(0)("PixelPointWidth")) 处返回一个空值
  • 操纵图表高度肯定会得到想要的结果,唯一的问题是高度越大,图表顶部的空白越多,有什么解决办法。并修复了系列表示在滚动时“冻结”的问题。谢谢
  • @StavrosPehlivanidis 我希望你的空白不会发生变化。您所说的“系列表示”,是指传说吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
相关资源
最近更新 更多