highcharts如何接收java作为后台 struts2 传递过来的动态数据

<!DOCTYPE HTML>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>Highcharts Example</title>

		<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
		<script type="text/javascript">
$(function () {
    var colors = Highcharts.getOptions().colors,
        categories = ['米卡莎', '尤米尔', '艾伦', '阿尔米', '皮克西斯','康尼','莱纳'],
        name = '进击的巨人',
        data = [
                {
	                y: 75.11,
	                color: colors[0],                 
                }, 
                {    
	                y: 21.63,
	                color: colors[1],
	            }, 
	            {
	                y: 11.94,
	                color: colors[2],
	            },
	            {
	                y: 20,
	                color: colors[3],
	            }, 
	            {
	                y: 30,
	                color: colors[5],
	            }, 
	            {
	                y: 7.15,
	                color: colors[6],
	            }, 
	            {
	                y: 2.14,
	                color: colors[4],
	            }];

    function setChart(name, categories, data, color) {
		chart.xAxis[0].setCategories(categories, false);
		chart.series[0].remove(false);
		chart.addSeries({
			name: name,
			data: data,
			color: color || 'white'
		}, false);
		chart.redraw();
    }

    var chart = $('#container').highcharts({
        chart: {
            type: 'column',
			borderWidth:'1',
			plotBorderColor:'#000000'
        },
        title: {
            text: '吸烟有害健康'
        },
        xAxis: {
            categories: categories,
            gridLineWidth:'0'
        },
        yAxis: {
            title: {
                text: '',
                gridLineWidth:'0'
            }
        },
		credits: {
			enabled: false
		},
        plotOptions: {
            column: {
                cursor: 'pointer',
                dataLabels: {
                    enabled: true,
                    color: colors[0],
                    style: {
                        fontWeight: 'bold'
                    },
                    formatter: function() {
                        return this.y;
                    }
                }
            }
        },
        series: [{
            name: name,
            data: data,
            color: 'white'
        }],
        exporting: {
            enabled: false
        }
    })
    .highcharts(); // return chart
});
    

		</script>
	</head>
	<body>
<script src="../../js/highcharts.js"></script>
<script src="../../js/modules/exporting.js"></script>

<div id="container" style="min-width: 200px; height: 200px; margin: 0 auto"></div>

	</body>
</html>

                    这是静态的页面  刚开始想着很简单   直接从后台拼成和前面静态内容一样的格式就行了   果断悲剧  前台用一个隐藏域hidden来接受后台传递过来的动态数值  例如 后台传给前台一个detailStr = "['米卡莎', '尤米尔', '艾伦', '阿尔米', '皮克西斯','康尼','莱纳']"  然后js中获取到(这个是X轴显示的内容,data同理 也是拼接的字符串)   赋给相应的值   内容一样 但总是显示不出来  

               各种搜索   问题解决大致如下  第一种  后台用JSON格式来保存字符串(前台需不需要做一下解析 -。-没试  好像挺麻烦的样子)   第二种    后台存特定字符串  例如 '10', '5', '15', '25', '15', '26', '25'   前台用Array进行字符串处理  比如逗号分隔 然后用parseint进行转换  存入新的Array 但是这样就没法保存其他一些属性了  比如 我不同的圆柱形用不同的颜色 这样的话还得从前台判断  太麻烦  我后台自己直接判断拼成字符串要简单的多  这个原理是貌似必须把 String转换成int类型才能显示。

          说了这么多还有个最为简单的方法    回到最开始的想法   后台拼接成都字符串和静态的字符串一模一样为什么不行  只要加一个eval就解决了  太坑爹了  搜了半天 还是无意中看了一个 试一下  果断OK了   data = eval(document.getElementById("data").value); 这个data是从后台获取到的动态拼接的字符串 加一个eval就搞定了  这个确实没明白是什么原理 貌似是自动转换成JS格式神马的 不太懂  。懂得也可以M我  大笑    没具体的例子 不懂得可以问我 





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明
### 回答1: 高级图表 Highcharts 可以显示多组数据。你可以通过配置数据数组来添加多个数据系列。例如,下面的代码显示了两个数据系列: ``` Highcharts.chart('container', { title: { text: '多组数据' }, series: [{ name: '数据系列 1', data: [1, 3, 2, 4, 5, 4, 6, 2, 3, 5] }, { name: '数据系列 2', data: [5, 3, 4, 2, 1, 3, 1, 5, 4, 2] }] }); ``` 这将在名为“container”的 HTML 元素中显示一个带有两个数据系列的标题为“多组数据”的 Highcharts 图表。第一个数据系列名为“数据系列 1”,其数据为[1, 3, 2, 4, 5, 4, 6, 2, 3, 5],第二个数据系列名为“数据系列 2”,其数据为[5, 3, 4, 2, 1, 3, 1, 5, 4, 2]。 ### 回答2: Highcharts 是一款强大的 JavaScript 图表库,具有创建各种交互式图表的能力。在 Highcharts 中,我们可以很方便地使用多组数据来创建图表。 要创建多组数据的图表,我们需要通过数组来存储每组数据的值。例如,如果我们要创建一个折线图,可以使用以下代码来定义多组数据: ``` var seriesData = [{ name: '组1', data: [1, 2, 3, 4, 5] }, { name: '组2', data: [2, 4, 6, 8, 10] }, { name: '组3', data: [5, 10, 15, 20, 25] }]; ``` 上述代码中,我们使用了一个包含三个对象的数组 `seriesData`,每个对象包含了组的名称和对应的数据值。这样,我们就创建了三组数据,并分别命名为 "组1"、"组2" 和 "组3"。 然后,我们可以使用 Highcharts 提供的API,将这些数据应用到图表中。以下是一个创建折线图的例子: ``` Highcharts.chart('container', { chart: { type: 'line' }, title: { text: '多组数据折线图' }, xAxis: { categories: ['一月', '二月', '三月', '四月', '五月'] }, yAxis: { title: { text: '数值' } }, series: seriesData }); ``` 在上述代码中,我们通过设置 `series` 属性来将多组数据应用到图表中。`series` 属性的值为之前定义的数组 `seriesData`,这样,图表就会根据每组数据生成对应的折线。同时,我们还可以设置图表的标题、X轴和Y轴的标签等属性,以定制图表的显示效果。 总而言之,通过定义多个数组来存储不同组的数据,并将这些数据应用到 Highcharts 中,我们可以轻松创建多组数据的图表。无论是折线图、柱状图还是饼图,Highcharts 都提供了相应的API和丰富的选项,可根据需求创建各种类型的图表。 ### 回答3: Highcharts 是一个流行的JavaScript 图表库,可以用于在网页上创建多组数据的图表。下面是关于如何使用Highcharts 来展示多组数据的示例: 首先,需要引入Highcharts 库和相关的样式文件到你的网页中。可以通过在`<head>`标签中添加以下代码来实现: ```html <head> <script src="https://cdn.jsdelivr.net/npm/highcharts/highcharts.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/highcharts/css/highcharts.css"> </head> ``` 然后,你可以在页面中的 `<div>` 元素中创建一个容器来显示你的图表,如下所示: ```html <div id="container"></div> ``` 接下来,你需要使用JavaScript代码来定义你的图表数据。你可以创建一个数组来存储多组数据,然后在Highcharts的配置中使用这些数据。下面是一个简单的示例: ```javascript var data1 = [1, 2, 3, 4, 5]; var data2 = [6, 7, 8, 9, 10]; Highcharts.chart('container', { title: { text: '多组数据示例' }, series: [{ name: '数据1', data: data1 }, { name: '数据2', data: data2 }] }); ``` 在上面的示例中,我们定义了两个数据数组 `data1` 和 `data2`,然后在 `series` 配置中分别指定了这两个数据的名称和值。 最后,你可以根据你的需求配置图表的其他属性,如标题、图例、坐标轴、样式等。 通过以上步骤,你就可以在网页中使用Highcharts来展示多组数据的图表了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值