html-charts在线生成图表、tooltip

这篇博客介绍了如何使用HTML-Charts插件在线生成和下载数据图表,包括折线图、柱状图和饼图。这个纯JavaScript的解决方案允许在表格中输入数据,并能自动生成图表,同时支持图表在Vue项目中的兼容性和居中显示。用户还可以自由添加表格行列,且图表会根据表格数据自动更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tooltip

 tooltip: {
          trigger: 'axis',
          axisPointer: {
            // 坐标轴指示器,坐标轴触发有效
            type: 'line', // 默认为直线,可选为:'line' | 'shadow'
          },
          formatter: function(params) {
              var result = '';
              params.forEach(function (item) {
                  result += item.marker + " " + item.seriesName + " : " + item.value +"%";
              });
              return result;
          }
        },

滑动触发:

item.marker='<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:#2ec7c9;"></span>'

 

formatter: function(params) {
            // console.log(params)
              var result = ' <p>'+params[0].name+'</p> '
              params.forEach(function (item) {
                  result +='<p>'+ item.marker + " " + item.seriesName + " : " + item.value +"%</p>";
              });
              return result;
          }

 

formatter: function(params) {
            console.log(params)
              var result = ' <p></p> '
              params.forEach(function (item) {
                  result +='<p>'+ item.marker + " " + item.seriesName + " : " + item.value +"%</p>";
              });
              return result;
          }

 

var thisForMa=' <p>{b}</p> '
var thiscolor= ['#FA7F65', '#32DADD', '#FCD300','#00CC00'
      ,'#2CC986','EB6876','#FB0047','#D66224','#FD5E37'],

      if(this.arr&&this.arr.length>0){
        var thisthiscolor=this.thiscolor
        for (var index  in this.arr) {
          if(this.arr.length>1){
            thisthiscolor.push('#ff6f0b')
          }
          thisForMa+='<p><span style="display:inline-block;'+
          'margin-right:5px;border-radius:10px;width:9px;height:9px;'+
          'background-color:'+thisthiscolor[index]+'"></span>{a'+(index)+'}: {c'+(index)+'}% </p>'
        }
      }

 

var thisthiscolorindex=''+'#00CC00'
      var thiscolorSttr='<span style="display:inline-block;'+
          'margin-right:5px;border-radius:10px;width:9px;height:9px;'+
          'background-color:'+thisthiscolorindex+'"></span>'

formatter: ''+' <p>{b}</p> <p>'+thiscolorSttr+'{a}: {c}% </p>'

 

formatter: ' <p>{b}</p> <p>{a0}: {c0}%</p>'+
          '<p>{a1}: {c1}%</p>'+
          '<p>{a2}: {c2}%</p>'

线粗细
series: [
          {
itemStyle: {
                      normal: {
                          lineStyle: {
                            width:2.4
                          }
                      }
                  }
 }
        ]

统计折线图-柱状图-饼图纯html-charts插件
第三方引入charts图表库,原生html、js、cs,在线生成数据图表
纯js方法组装数据,设置到图表模型,生成图表
可以在折线图-柱状图之间转换
可以将生成好的图表下载到本地
可以将此模块放置到Vue的项目里,可以兼容
在table表格内填写数据。刷新后自动生成图表
table表格可以增加行列,及增加tr、td标签

 

引入charts图表库


	<script type="text/javascript" src="https://cdn.bootcss.com/echarts/4.7.0/echarts.min.js"></script>

 

准备一个可以放画布的div

<div align="center">

		<div id="container" style="width: 80%;height:600px;"></div>
	</div>

 

align="center" 的效果是图表居中

 

 左侧的格度是自动增长的,不用管

 

 

 

蓝色的表格table内,可以任意输入值

自动生成图表,可下载

 

折线图与柱状图

<script>
var data = ["美国", "意大利", "中国", "西班牙", "德国", "法国", "伊朗"];
		var ks = [
			{
				name: '累计',
				type: 'line',
				stack: '累计总量',
				data: [820, 932, 901, 934, 1290, 1330, 1320]
			},
			{
				name: '现有',
				type: 'line',
				stack: '现有总量',
				data: [8120, 92, 9201, 1934, 1290, 3030, 120]
			}

		];
		load(data, ks,'七日近况');
		function load(data, ks,title) {
			var myChart = echarts.init(document.getElementById('container'));

			var option = {
				title: {
					text: title,	
					left:'center'

				},
				tooltip: {
					trigger: 'axis'
				},
				legend: {
					data: ['近七日情况']
				},
				grid: {
					left: '3%',
					right: '4%',
					bottom: '3%',
					containLabel: true
				},
				toolbox: {
					show: true,
					feature: {
						dataZoom: {
							yAxisIndex: 'none'
						}, //区域缩放,区域缩放还原
						dataView: {
							readOnly: false
						}, //数据视图
						magicType: {
							type: ['line', 'bar']
						},  //切换为折线图,切换为柱状图
						restore: {},  //还原
						saveAsImage: {}   //保存为图片
					}
				},
				xAxis: {
					type: 'category',
					boundaryGap: false,
					data: data
				},
				yAxis: {
					type: 'value'
				},
				series: ks
			};

			myChart.setOption(option, true);
		}
</script>

饼图:

        <script>
function loadPie() {
			var data = [{
				value: 335, name: '直接访问'
			},
			{
				value: 310,
				name: '邮件营销'
			},
			{
				value: 234,
				name: '联盟广告'
			},
			{
				value: 135,
				name: '视频广告'
			},
			{
				value: 1548,
				name: '搜索引擎'
			}
			];
			var ks = ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎'];
			loadToPie(data, ks,'近七日情况');
		}
		 
		function loadToPie(data, ks,title) {
			var myChart = echarts.init(document.getElementById('container'));

			var option = {
				title: {
					text: title,	
					left:'center'

				},
				tooltip: {
					trigger: 'item',
					formatter: "{a} <br/>{b}: {c} ({d}%)"
				},
				color: ['#93D8A9', '#FFB99D', '#AF7DCC', '#FFD83D', '#bbe2e8'],
				legend: {
					orient: 'horizontal',
					x: 'left',
					data: ks
				},
				series: [{
					name: '占比',
					type: 'pie',
					radius: ['30%', '70%'],
					avoidLabelOverlap: false,
					label: {
						normal: {
							show: false,
							position: 'center'
						},
						emphasis: {
							show: true,
							textStyle: {
								fontSize: '30',
								fontWeight: 'bold'
							}
						}
					},
					labelLine: {
						normal: {
							show: false
						}
					},
					data: data
				}]
			};
			if (option && typeof option === "object") {
				myChart.setOption(option, true);
			}
		}
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洪君.

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值