2

如何在 xcode 中通过 ios-charts 创建水平条形图?我用 Horizo​​ntalBarChartView 类创建了 View

@IBOutlet weak var horChart: HorizontalBarChartView!

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.

    let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
    let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0]

    setChart(months, values: unitsSold)

}

func setChart(dataPoints: [String], values: [Double]) {

    var dataEntries: [ChartDataEntry] = []

    for i in 0..<dataPoints.count {
        let dataEntry = ChartDataEntry(value: values[i], xIndex: i)
        dataEntries.append(dataEntry)
    }

    let chartDataSet = BarChartDataSet(yVals: dataEntries, label: "Units Sold")
    let chartData = BarChartData(xVals: dataPoints, dataSet: chartDataSet)
    horChart.data = chartData

}

在互联网上没有找到任何示例

4

2 回答 2

6

检查 mainStoryboard 中的 horChart 视图。是类是“Horizo​​ntalBarChartView”,模块是“图表”,我遇到了同样的问题,但我的问题通过设置模块解决了是“图表”

于 2016-07-27T06:22:27.653 回答
0

ChartsDemo 文件夹中有例子,有很多图表你可以看看。但我会在这里粘贴代码,它是从以下位置复制的@interface HorizontalBarChartViewController

- (void)setDataCount:(int)count range:(double)range
{
    NSMutableArray *xVals = [[NSMutableArray alloc] init];

    for (int i = 0; i < count; i++)
    {
        [xVals addObject:months[i % 12]];
    }

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

    for (int i = 0; i < count; i++)
    {
        double mult = (range + 1);
        double val = (double) (arc4random_uniform(mult));
        [yVals addObject:[[BarChartDataEntry alloc] initWithValue:val xIndex:i]];
    }

    BarChartDataSet *set1 = [[BarChartDataSet alloc] initWithYVals:yVals label:@"DataSet"];
    set1.barSpace = 0.35;

    NSMutableArray *dataSets = [[NSMutableArray alloc] init];
    [dataSets addObject:set1];

    BarChartData *data = [[BarChartData alloc] initWithXVals:xVals dataSets:dataSets];
    [data setValueFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:10.f]];

    _chartView.data = data;
}
于 2015-08-31T01:35:48.297 回答