首页 > 解决方案 > 图表不会相互重叠

问题描述

我有 X 数量的图表,其中 X 始终是偶数。每个系列显示为两个图表。一个折线图和一个 Xy 散点图。问题是图表是分开的,一张在左边,一张在右边。我希望它们重叠,以便散点图中的点显示线条中断的位置。这就是我要的: 在此处输入图像描述

但这就是我得到的: 在此处输入图像描述

顺便说一下,这是两个不同的图表。一个显示日期,其他几个星期。有日期的工作,第一周没有。

这是有关周图的代码:

With myChart.Chart
.SeriesCollection(i).XValues = actualdateweek

'actualdateweek is an array with week numbers like 21,22 and so on

.SeriesCollection.NewSeries

If LineGraph = True Then
.SeriesCollection(i).Values = actualdata
.SeriesCollection(i).ChartType = xlLine
.SeriesCollection(i).Format.Line.Visible = msoTrue
.SeriesCollection(i).Format.Line.ForeColor.RGB = RGB(ColorR(i - iModifier - 1), ColorG(i - iModifier - 1), ColorB(i - iModifier - 1))

'actualdata is an array with all the data

elseif XyScatterPlot = True Then
.SeriesCollection(i).Values = actualdata
.SeriesCollection(i).ChartType = xlXYScatter
.SeriesCollection(i).MarkerStyle = xlMarkerStyleSquare
.SeriesCollection(i).Format.Fill.Visible = msoTrue
.SeriesCollection(i).Format.Fill.ForeColor.RGB = RGB(ColorR(i - iModifier - 1), ColorG(i - iModifier - 1), ColorB(i - iModifier - 1))
.SeriesCollection(i).MarkerForegroundColorIndex = -4142
End If

.SeriesCollection(i).AxisGroup = 1

Next i
End With

图表依次添加。首先将数据系列(实际数据数组)添加为折线图。然后添加相同的数据系列,但作为散点图。然后数据系列发生变化,一切都在重复。所以就像

seriescollection(1).XValues = array filled with week numbers
seriescollection(1).Values = Data series 1
seriescollection(1).ChartType = xlLine

seriescollection(2).XValues = array filled with week numbers
seriescollection(2).Values = Data series 1
seriescollection(2).ChartType = xlXYScatter

seriescollection(3).XValues = array filled with week numbers
seriescollection(3).Values = Data series 2
seriescollection(3).ChartType = xlLine

seriescollection(4).XValues = array filled with week numbers
seriescollection(4).Values = Data series 2
seriescollection(4).ChartType = xlXYScatter

这是第一张图的样子: 在此处输入图像描述

然后当数据添加到第二个图表时:

.SeriesCollection(i).Values = actualdata

在此处输入图像描述

然后第二张图变成散点图:

.SeriesCollection(i).ChartType = xlXYScatter

在此处输入图像描述

然后分配一个轴组:

.SeriesCollection(i).AxisGroup = 1

在此处输入图像描述

有人知道发生了什么吗?

编辑 好的问题解决了我猜...通过删除 XYScatterPlot 的 X 值,它与折线图对齐。

这一行: .SeriesCollection(i).XValues = actualdateweek

标签: excelvba

解决方案


推荐阅读