200分求解高难题,高手进。excel的双轴曲线图,如何编程调整两纵轴的零点相对
发布网友
发布时间:2022-04-23 20:34
我来回答
共3个回答
热心网友
时间:2023-10-09 04:10
我的做法:
1、先插入图表生成“折线图”——点其中一条折线(通常选数据小的)——右键——数据系列格式——坐标轴:次坐标轴——确定。
2、点次数值轴——右键——坐标轴格式——刻度:这时有两个关键数据,最小值和最大值,要保证:
主坐标轴最小值*次坐标轴最大值/主坐标轴最大值=次坐标轴最小值(必须是整数!)
可修改(扩大)主坐标轴的两个值来满足次坐标轴。
按求出来的数据输入刻度——其他数据默认——确定
这样不会很费事吧?
如附图:
补充:
不用“微调”的呀,我上面讲过:
主坐标轴最小值*次坐标轴最大值/主坐标轴最大值=次坐标轴最小值(必须是整数!)
3个已知数值中,主坐标轴的最大(最小)值已经可以确定,次坐标轴最大值也在设置刻度时有个默认值,只要保证上面的公式求出的次坐标轴最小值是整数就行。
就像我的附图2,默认时主坐标轴的最大(最小)值分别是140、-40,不成倍数,把它修改为150、-50,得倍数绝对值=4。即:
次坐标轴最小值=-50*60/150=-20
热心网友
时间:2023-10-09 04:10
根据你的例子,思路是把坐标设定相同,不过,要适合两条线,所以,最大最小值要选择最大,或则最小的值对应于最大最小值。
下面的宏可以在界面上画个按钮,连接到这个宏就可以了。
代码如下:
Sub TongyiZuobiao1()
'
'
'
Dim ma As Integer
Dim mi As Integer
Range("C7").Select
ActiveCell.FormulaR1C1 = "=MAX(R[-3]C[-1]:R[-2]C[1])"
Range("D7").Select
ActiveCell.FormulaR1C1 = "=MIN(R[-3]C[-2]:R[-2]C)"
ma = Int(Range("C7").Value)
ma = Math.Round(ma / 10, 0) * 10 + 10
mi = Int(Range("D7").Value)
mi = Math.Round(mi / 10, 0) * 10 - 10
ActiveSheet.ChartObjects("图表 2").Activate
ActiveChart.Axes(xlValue, xlSecondary).Select
ActiveChart.Axes(xlValue, xlSecondary).MinimumScale = mi
ActiveChart.Axes(xlValue, xlPrimary).MinimumScale = mi
ActiveChart.Axes(xlValue, xlSecondary).MaximumScale = ma
ActiveChart.Axes(xlValue, xlPrimary).MaximumScale = ma
ActiveChart.Axes(xlValue, xlSecondary).MinorUnit = (ma - mi) / 5
ActiveChart.Axes(xlValue, xlPrimary).MinorUnit = (ma - mi) / 5
ActiveChart.Axes(xlValue, xlSecondary).MajorUnit = (ma - mi) / 10
ActiveChart.Axes(xlValue, xlPrimary).MajorUnit = (ma - mi) / 10
End Sub
热心网友
时间:2023-10-09 04:11
晕了,高手啊!