iOS-диаграммы с экспоненциальной осью X

У меня есть требование построить график с диапазоном оси Y (от -15 дБ до 15 дБ).

значения сюжета получаются из массива с плавающей запятой -например,

float plotVal[] = {
        0.707087f,
        0.715769f,
        0.724338f,......};(contains 560 points)

Мое значение по оси X должно находиться в диапазоне от 20 Гц до 20 000 Гц, но в логарифмическом масштабе, как показано на изображении введите здесь описание изображения

Я использую iOS-Charts и заполняю значения как

NSMutableArray *xVals = [[NSMutableArray alloc] init];
    int xCount = 560;

    for (int i = 0; i < xCount; i++)
    {
        [xVals addObject:[@(i) stringValue]];

    }

    NSMutableArray *yVals = [[NSMutableArray alloc] init];

    int yCount = 560;

    for (int i = 0; i < yCount; i++)
    {
      [yVals addObject:[[ChartDataEntry alloc] initWithValue:plotVal[i] xIndex:i]];

    }

Как я могу изменить значения шкалы, как показано на изображении, пожалуйста, помогите.


person SMS    schedule 27.01.2016    source источник


Ответы (2)


В настоящее время ios-charts не поддерживает такие сценарии. Я вообще подал заявку в поддержку, но над ней нужно прилично поработать.

Единственное, что вы можете сделать, это попытаться понять, как ios-charts рисуют линейный график, и создать новый график на основе фреймворка. Он может это сделать.

Трудная часть заключается в том, что вы переписываете ось X и выясняете, как вы вычислили координаты.

Это долгая история, чтобы объяснить все детали, и код может рассказать вам все, вы можете попробовать.

person Wingzero    schedule 28.01.2016
comment
Поддерживается ли этот сценарий в core-pol? Любая идея об этом. - person SMS; 28.01.2016

Наконец, я использовал базовый график, играя с некоторыми математическими функциями, мог построить график, как на скриншоте. Так что это возможно с использованием основного сюжета. Спасибо.Grt.

person SMS    schedule 26.02.2016