请问如何画多个附图(增加副图窗口)

如果在主图划线、公式指标太多,想增加多个独立画板,

用了一个plot的案例,发现子图的x时间轴数据被压缩在一起,不能与主图k线,上下整齐对应,

请问如何解决?

是修改   xData[0] = date+time ?

以下代码来自说明文档,Plot其中的一段:

Vars
    Plot  parentPlt1;//主图
    Plot  parentPlt2;//主图
    Plot  childPlt;//附图
    Array<Numeric> xData;//x轴数据集
    Array<Numeric> yData;//y轴数据集
Events
    OnInit()
    {
        parentPlt1.figure();    //独立画板
        parentPlt2.figure();    //独立画板
        parentPlt1.setOption("MA1","x-format","time");//设置X为时间轴
        parentPlt2.setOption("MA2","x-format","time");//设置X为时间轴
        childPlt.subplot(parentPlt1);//childPlt叠加到parentPlt1主图上显示
        childPlt.subplot(parentPlt2);//childPlt叠加到parentPlt2主图上显示
    }
    OnBar(ArrayRef<Integer> indexs)
    {
        xData[0] = date+time;
        yData[0] = AverageFC(Close,5);
        parentPlt1.line("MA1",xData,yData);
        parentPlt2.line("MA2",xData,yData);
        yData[0] = AverageFC(Close,10);
        parentPlt1.line("MA11",xData,yData);//同一个Plot叠加
        childPlt.line("MA3",date+time,AverageFC(Close,20));//subplot叠加

副图重新画k线
主图与副图指标如何相互引用
如何用代码让附图(子图)隐藏
在附图上增加标注
副图排列
如何固定附图的大小尺寸站主图比例
主图与副图
加入副图指标时,可不可隐藏副图,不显示副图
同时显示在主图和副图?
关于副图的显示

Vars
    Plot  parentPlt1;//主图
    Plot  parentPlt2;//主图
    Plot  childPlt;//附图
    Array<Numeric> xData;//x轴数据集
    Array<Numeric> yData;//y轴数据集
Events
    OnInit()
    {
        parentPlt1.figure(0);    //独立画板
        parentPlt2.figure(0);    //独立画板
        parentPlt1.setOption("MA1","x-format","time");//设置X为时间轴
        parentPlt2.setOption("MA2","x-format","time");//设置X为时间轴
        childPlt.subplot(parentPlt1);//childPlt叠加到parentPlt1主图上显示
        childPlt.subplot(parentPlt2);//childPlt叠加到parentPlt2主图上显示
    }
    OnBar(ArrayRef<Integer> indexs)
    {
        xData[0] = date+time;
        yData[0] = AverageFC(Close,5);
        parentPlt1.line("MA1",xData,yData);
        parentPlt2.line("MA2",xData,yData);
        yData[0] = AverageFC(Close,10);
        parentPlt1.line("MA11",xData,yData);//同一个Plot叠加
        childPlt.line("MA3",date+time,AverageFC(Close,20));//subplot叠加
       }

是要的这种效果吗?

谢谢,对了,增加了两个子图。

在源代码括号内,加个0 。

parentPlt1.figure(0);    //独立画板
parentPlt2.figure(0);    //独立画板

请问按这种增加主图的方式,如何实现红绿柱?

(如果可以,就能把data1、data2的k线隐藏,并把两者的data1.macd    data2.macd图提上来,放在一起,方便查看)

xData[0] = date+time;
        
        yData[0] = 0;
        parentPlt0.line("零线",xData,yData);
        
        yData[0] = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;
        parentPlt0.line("Data0.MACDDiff",xData,yData);
        
        yData[0] = XAverage(MACDDiff,MACDLength);
        parentPlt0.line("Data0.MACDDEA",xData,yData);
        
        yData[0] = (XAverage( Close, FastLength ) - XAverage( Close, SlowLength )) - 
                   (XAverage(MACDDiff,MACDLength));
        /*           
        If (yData[0] >= 0)                 
            parentPlt0.barv("Data0.MACD",xData,yData,Red);     //最后一个参数是定位的数字,不是颜色
        Else
            parentPlt0.barv("Data0.MACD",xData,yData,Green);
        */    
        parentPlt0.barv("Data0.MACD",xData,yData);

xData[0] = date+time;
        
        yData[0] = 0;
        parentPlt0.line("零线",xData,yData);
        
        yData[0] = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;
        parentPlt0.line("Data0.MACDDiff",xData,yData);
        
        yData[0] = XAverage(MACDDiff,MACDLength);
        parentPlt0.line("Data0.MACDDEA",xData,yData);
        
        yData[0] = (XAverage( Close, FastLength ) - XAverage( Close, SlowLength )) - 
                   (XAverage(MACDDiff,MACDLength));
        
        
        If (yData[0] >= 0)  
        {      
            parentPlt0.setOption("Data0.MACD","color",Red);
        }
        Else
        {
            parentPlt0.setOption("Data0.MACD","color",Green);  
         }
         parentPlt0.barv("Data0.MACD",xData,yData); 
       }

看看这样是不是你要的效果

感谢,原来是用setOption改颜色!

//画Data1 macd图
        yData[0] = 0;
        parentPlt1.line("零线",xData,yData);
        
        yData[0] = Data1.XAverage(Data1.Close,FastLength) - Data1.XAverage(Data1.Close,SlowLength) ;
        parentPlt1.line("Data1.MACDDiff",xData,yData);
        
        yData[0] = Data1.XAverage((Data1.XAverage(Data1.Close,FastLength) - Data1.XAverage(Data1.Close,SlowLength)),MACDLength);
        parentPlt1.line("Data1.MACDDEA",xData,yData);
        
        yData[0] = (Data1.XAverage(Data1.Close,FastLength) - Data1.XAverage(Data1.Close,SlowLength)) - 
                   (Data1.XAverage((Data1.XAverage(Data1.Close,FastLength) - Data1.XAverage(Data1.Close,SlowLength) ),MACDLength));
        
        If (yData[0] >= 0)  
        {      
            parentPlt1.setOption("Data1.MACD","color",Red);
        }
        Else
        {
            parentPlt1.setOption("Data1.MACD","color",Green);  
        }        
        parentPlt1.barv("Data1.MACD",xData,yData);