Рисование диаграммы iPhone MIMChartLib: Как установить ось Y, начиная с 18000, но не с 0? - PullRequest
0 голосов
/ 23 сентября 2011

Я сейчас использую MIMChartLib для разработчика Iphone Chart, Но у меня проблемы с линейным графиком,

например вот мой CSV

Time;NAME;value001;value002;value003;value004; 01:00.0;ABCABC;1837;1837.2;1836.5;1831 02:00.0;ABCABC;1836.7;1837;1836.5;1836.7 03:00.0;ABCABC;1827;1827.2;1816.5;1826.9 04:00.0;ABCABC;1837;1837.2;1836.5;1836.9 05:00.0;ABCABC;1837;1837.2;1836.5;1836.9

Как установить ось Y на 18000, но не начинать с нуля. в противном случае график будет действительно очень маленьким.

здесь Предварительный просмотр :

вот мой код / * Дата, время, валюта; Bid; Ask 14/9/2011; 00: 03,0; LLGUSD; 1836,5; 1837

 */


[MIMColor InitColors];
NSString *csvPath1 = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"myTableBar.csv"];    
//LineGraph *lineGraph=[[LineGraph alloc]initWithFrame:CGRectMake(100, 20, 220, 380)];
LineGraph *lineGraph=[[LineGraph alloc]initWithFrame:Chartarea.frame];
lineGraph.needStyleSetter=YES;
lineGraph.xIsString=YES; 
lineGraph.anchorType=CIRCLEBORDER; //OTHER anchorType
[lineGraph readFromCSV:csvPath1 titleAtColumn:1 valueInColumn:[NSArray arrayWithObjects:@"1",@"3", nil]];
[lineGraph displayYAxis];
[lineGraph displayXAxisWithStyle:5]; //OTHER styles FOR X-Axis Labels
[lineGraph drawWallGraph];

[self.view addSubview:lineGraph];

Большое спасибо !!

Ответы [ 2 ]

1 голос
/ 23 сентября 2011
go this link

https://github.com/ReetuRaj/MIMChart-Library

in YAxisBand.m file u have this method it work for me.....


-(void)setScaleForYTile:(float)value  withNumOfLines:(int)numOfHorLines
{
    pixelPerYTile=18000000.0;
    //pixelPerYTile=value;
    HorLines=numOfHorLines;
    [self setNeedsDisplay];

}
0 голосов
/ 11 октября 2012

перейдите по этой ссылке https://github.com/ReetuRaj/MIMChart-Library

In MIMLineGraph.m

перейти к функции -(void)_findScaleForYTile

и УДАЛИТЕ следующий код

 minOfY=[MIM_MathClass getMinFloatValue:[_yValElements objectAtIndex:0]];
    for (int i=1; i<[_yValElements count]; i++) 
    {
        float minOfY1=[MIM_MathClass getMinFloatValue:[_yValElements objectAtIndex:i]];
        if(minOfY1<minOfY)
            minOfY=minOfY1;
    }

и установите значение minOfY непосредственно в ноль вместо выполнения вышеуказанного вычисления

minOfY = 18000000.0;

ПРИМЕЧАНИЕ: в MIMChartLib минимальное значение, отображаемое в yaxis, будет наименьшим значением, которое вы дадите в CSV-файле для построения графиков. Так что, если вам нужно запустить yaxis с 18000000.0, то, если минимальное значение в вашем CSV-файле совпадает, то MIMCHART автоматически установит начальное значение yaxis как 18000000.0

...