我正在尝试在Excel 2016中显示随着n增加的二项分布的直方图形状的变化。我的部分代码需要创建一个非常宽的误差条的散点图,如http://thydzik.com/histogram-with-normal-distribution-overlay-in-excel/所示 这样我就可以在直方图上得到一个平滑的直方图。
问题在于我无法修改y方向上误差线的权重。我记录了一个创建过程的宏,但是当我执行宏时,它会修改x错误条。
Sub Macro8()
Range("F15:G25").Select
ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
ActiveChart.SetSourceData Source:=Range("Sheet4!$F$15:$G$25")
ActiveChart.FullSeriesCollection(1).Select
ActiveChart.SetElement (msoElementErrorBarStandardError)
ActiveChart.FullSeriesCollection(1).HasErrorBars = True
ActiveChart.FullSeriesCollection(1).ErrorBars.Select
ActiveChart.FullSeriesCollection(1).ErrorBars.Select
With Selection.Format.Line
.Visible = msoTrue
.Weight = 20
End With
ActiveChart.FullSeriesCollection(1).ErrorBars.EndStyle = xlNoCap
ActiveChart.FullSeriesCollection(1).ErrorBar Direction:=xlY, Include:= _
xlMinusValues, Type:=xlPercent, Amount:=100
With Selection.Format.Line
.Visible = msoTrue
.Weight = 23.75
End With
ActiveChart.SeriesCollection(1).Name = "Smoothed Histogram"
End Sub
您可以看到预期结果与实际结果以及数据(对于不同情况会有所改变,因此需要修改权重)
我应该在代码中添加什么来强制它与y错误栏一起使用?
答案 0 :(得分:0)
宏录制器并不总是你的朋友,错误栏周围的VBA对象模型不完整。但是,如果您只需要格式化Y错误条,那么以下代码对您来说就足够了。
Sub FatVerticalErrorBars()
Range("F15:G25").Select
ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
ActiveChart.SetSourceData Source:=Range("Sheet4!$F$15:$G$25")
ActiveChart.FullSeriesCollection(1).ErrorBar Direction:=xlY, Include:= _
xlMinusValues, Type:=xlPercent, Amount:=100
With ActiveChart.FullSeriesCollection(1).ErrorBars
.EndStyle = xlNoCap
With .Format.Line
.Visible = msoTrue
.Weight = 23.75
End With
End With
ActiveChart.SeriesCollection(1).Name = "Smoothed Histogram"
End Sub