साझा करने वाले दो भूखंड मैं कोर प्लॉट के साथ प्रदान किए गए एपलॉट नमूने के समान दो चार्ट सेट अप करने का प्रयास कर रहा हूं। इसमें मूल रूप से एक स्टॉक चार्ट होता है, जो लगभग सही ढंग से दिखाया जाता है और दूसरा चार्ट (वॉल्यूम चार्ट), जिसे स्टॉक चार्ट के नीचे सीधे रखा जाना चाहिए। दोनों चार्टों को एक ही एक्स अक्ष साझा करना चाहिए।कोर प्लॉट: एक ही एक्स अक्ष
दुर्भाग्य से वॉल्यूम चार्ट का डेटा मेरे ऐप में प्लॉट नहीं किया जा रहा है।
भले ही मैंने अपने साथ नमूना स्रोत कोड की तीव्रता से तुलना की, मुझे मेरी त्रुटि का स्रोत नहीं मिला।
क्या आप मुझे सही दिशा में इंगित कर सकते हैं?
यह मेरा कोड है: के बजाय:
- (void)configureChart
{
self.graph = [[CPTXYGraph alloc] initWithFrame:self.hostView.bounds];
self.hostView.hostedGraph = self.graph;
self.graph.paddingLeft = 0.0f;
self.graph.paddingTop = 0.0f;
self.graph.paddingRight = 0.0f;
self.graph.paddingBottom = 0.0f;
self.graph.axisSet = nil;
// 2 - Set up text style
CPTMutableTextStyle *textStyle = [CPTMutableTextStyle textStyle];
textStyle.color = [CPTColor grayColor];
textStyle.fontName = @"Helvetica-Bold";
textStyle.fontSize = 16.0f;
// 3 - Configure title
NSString *title = self.issue.company.companyName;
_graph.title = title;
_graph.titleTextStyle = textStyle;
_graph.titlePlotAreaFrameAnchor = CPTRectAnchorTop;
_graph.titleDisplacement = CGPointMake(0.0f, -12.0f);
// 4 - Set theme
[self.graph applyTheme:[CPTTheme themeNamed:kCPTStocksTheme]];
_graph.plotAreaFrame.cornerRadius = 0.0f;
CPTMutableLineStyle *borderLineStyle = [CPTMutableLineStyle lineStyle];
borderLineStyle.lineColor = [CPTColor whiteColor];
borderLineStyle.lineWidth = 2.0f;
_graph.plotAreaFrame.borderLineStyle = borderLineStyle;
// Axes
CPTXYAxisSet *xyAxisSet = (id)self.graph.axisSet;
CPTXYAxis *xAxis = xyAxisSet.xAxis;
CPTMutableLineStyle *lineStyle = [xAxis.axisLineStyle mutableCopy];
lineStyle.lineCap = kCGLineCapButt;
xAxis.axisLineStyle = lineStyle;
xAxis.labelingPolicy = CPTAxisLabelingPolicyNone;
CPTXYAxis *yAxis = xyAxisSet.yAxis;
yAxis.axisLineStyle = nil;
// OHLC plot
CPTMutableLineStyle *whiteLineStyle = [CPTMutableLineStyle lineStyle];
whiteLineStyle.lineColor = [CPTColor whiteColor];
whiteLineStyle.lineWidth = 1.0f;
CPTTradingRangePlot *ohlcPlot = [[CPTTradingRangePlot alloc] initWithFrame:self.graph.bounds];
ohlcPlot.identifier = @"OHLC";
ohlcPlot.lineStyle = whiteLineStyle;
CPTMutableTextStyle *whiteTextStyle = [CPTMutableTextStyle textStyle];
whiteTextStyle.color = [CPTColor whiteColor];
whiteTextStyle.fontSize = 8.0;
ohlcPlot.labelTextStyle = whiteTextStyle;
ohlcPlot.labelOffset = 5.0;
ohlcPlot.stickLength = 2.0f;
ohlcPlot.dataSource = self;
ohlcPlot.plotStyle = CPTTradingRangePlotStyleOHLC;
[self.graph addPlot:ohlcPlot];
// Add volume plot space
CPTXYPlotSpace *volumePlotSpace = [[CPTXYPlotSpace alloc] init];
volumePlotSpace.identifier = @"Volume";
[_graph addPlotSpace:volumePlotSpace];
CPTBarPlot *volumePlot = [CPTBarPlot tubularBarPlotWithColor:[CPTColor whiteColor] horizontalBars:NO];
volumePlot.dataSource = self;
lineStyle = [volumePlot.lineStyle mutableCopy];
lineStyle.lineColor = [CPTColor whiteColor];
volumePlot.lineStyle = lineStyle;
volumePlot.fill = nil;
volumePlot.barWidth = CPTDecimalFromFloat(1.0f);
volumePlot.identifier = @"Volume Plot";
[_graph addPlot:volumePlot toPlotSpace:volumePlotSpace];
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *) self.graph.defaultPlotSpace;
[plotSpace scaleToFitPlots:[self.graph allPlots]];
}
कोड की रेखा को बदलते समय समस्या वही रहती है। असल में, मैंने सिर्फ एप्लोट नमूना से स्रोत कोड पोर्ट किया है, लेकिन यह मेरे सेट-अप में काम नहीं करता है। – AlexR
मुझे पता है कि प्लॉट्स को कैसे सेट अप करने की आवश्यकता है, इसके बीच कुछ अंतर हैं, लेकिन आप वॉल्यूम प्लॉट को ग्राफ की सीमाओं के साथ प्रारंभ नहीं करते हैं। साथ ही, क्या आपने डीबगर के माध्यम से भाग लिया है, क्या आपका वॉल्यूम प्लॉट वास्तव में मौजूद है या जानकारी है? –
वॉल्यूमप्लॉट के लिए डेटा मौजूद है, डेटासॉर सही डेटा प्रदान करता है। मैंने वॉल प्लॉट नमूना में वॉल्यूम प्लॉट (मेरे कोड में: वैल्यूएशन प्लॉट) स्थापित किया है। – AlexR