iOS 使用百度图表插件Echarts

1 篇文章 0 订阅
1 篇文章 0 订阅

最近开发的iOS应用使用了百度的图表插件echarts,在这里做下记录

echarts 官网:http://echarts.baidu.com/

步骤就是首先在iOS里建几个常用的图表模板:柱状图、饼图、折线图,如果用到其他可以去官网看例子;

以柱状图为例,我的命名是chart_bar.html:

title:是标题,ocData:是X轴的名称,ocValueData:是具体是数值

<!DOCTYPE html>
<head>
    <meta charset="utf-8">
        <title>ECharts</title>

</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="height:260px;width: 100%;"></div>
    <!-- ECharts单文件引入 -->
    <script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
    <script type="text/javascript">
        var title = "";
        var ocData;
        var ocValueData;
    function setData(ocvalue){
        ocData = ocvalue;
    }
    function setValueData(ocvalue){
        ocValueData = ocvalue;
    }
     function setTitle(str){
        title = str;
     }

        // 路径配置
        require.config({
                       paths: {
                       echarts: 'http://echarts.baidu.com/build/dist'
                       }
                       });
                       
                       // 使用
                       require(
                               [
                                'echarts',
                                'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
                                ],
                               function (ec) {
                               // 基于准备好的dom,初始化echarts图表
                               var myChart = ec.init(document.getElementById('main'));
                               
                               var option = {
                               tooltip: {
                               show: true
                               },
                               legend: {
                               data:[title]
                               },
                               xAxis : [
                                        {
                                        type : 'category',
                                        data : ocData
                                        }
                                        ],
                               yAxis : [
                                        {
                                        type : 'value'
                                        }
                                        ],
                               series : [
                                         {
                                         "name":title,
                                         "type":"bar",
                                         "data":ocValueData
                                         }
                                         ]
                               };
                               // 为echarts对象加载数据 
                               myChart.setOption(option); 
                               }
                               );
        </script>
</body>

然后在oc代码里创建UIWebView ,加载chart_bar.html,并且传值title,ocData,ocValueData三个的值

LoadWebViewController.h

#import <UIKit/UIKit.h>

@interface LoadWebViewController : UIViewController<UIWebViewDelegate>

@end

LoadWebViewController.m

#import "LoadWebViewController.h"

@interface LoadWebViewController ()
{
      UIWebView *_webView;
}

@end
@implementation LoadWebViewController

-(void)viewDidLoad{
    [super viewDidLoad];
   
    
    _webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,260)];
    _webView.backgroundColor = [UIColor redColor];
    _webView.delegate = self;
   
    [self.view addSubview:_webView];
    NSString *filePath = [[NSBundle mainBundle]pathForResource:@"chart_bar" ofType:@"html"];
    NSString *htmlString = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
    
    [_webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:filePath]];

}

//webview加载完成后加载图表数据
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    //传值标题
<p class="p1"><span class="s1">    NSString</span><span class="s2"> *setTitle = </span><span class="s3">@"setTitle('</span><span class="s4">数量(吨)</span><span class="s3">')"</span><span class="s2">;</span></p>    [_webView stringByEvaluatingJavaScriptFromString:setTitle];
    
    //传值X轴
    [_webView stringByEvaluatingJavaScriptFromString:@"setData(['桔子','香蕉','苹果','西瓜'])"];
    //柱状图
        NSString *setValueData = [NSString stringWithFormat:@"setValueData([%@,%@,%@,%@])",@"200",@"100",@"260",@"400"];
    
    //传值Y轴数据
    [_webView stringByEvaluatingJavaScriptFromString:setValueData];
    
    
    
}

@end

运行项目,出现柱状图:




  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值