A. Echarts.js画折线图如何去掉小圆点
最大的问题可能是受到了require([],function(){});的阻碍吧。 其实require无非就是一个模块化加载借用其回调专函数去创建图表对属象。
series 里面设置symbol为none;
...
type:'line',
symbol:'none'
....
B. Vue+Echarts 实现自定义折线图组件
网上Vue结合Echarts使用的例子少之又少,而且数据都写好在组件内且不可复用
本文基于 Vue.js高仿饿了么外卖App ,在商家页面添加一个简易的可交互的平滑折线图
Chrome调试模拟手机端操作效果:
</br>
我将拆分为两个部分,标题和三个选择框写在当前页面seller.vue中,将配置折线图的样式都写在父组件seller.vue里,折线图则抽象化为可复用的组件。
</br>
模拟一份JSON格式的 折线图xy坐标轴数据 chartData ,其中分了日、周、月这三组数据。
** data.json:**
</br>
在 webpack 的 dev-sever.js 中读取模拟好的 chartData 数据,然后新增个接口apiRoutes,当服务端收到请求以后,返回给客户端 chartData
** dev-sever.js:**
</br>
Hello.vue向服务器请求并获取 chartData
Hello.vue:
</br>
seller.vue 中写好标题和三个选择框的样式
props 接收从 Hello.vue 传来的xy坐标轴数据 chartData
传入 chart.vue 将要接收的数据,impData 为 chartData 中的一组数据,setData 为自定义折线图样式的数据。
select(type) 方法是点击选择框高亮,并把 impData 赋值为 chartData 中对应的一组数据
** seller.vue :**
</br>
chart.vue组件中
prop 接收父组件 seller.vue 的传来的 impChartData 和 setChartData
watch 观察 impChartData 数据的变化,因为父组件点击选择框会改变传入的数据,这里相应的改变数据,并渲染新的折线图
drawLine(xData, yData, xAxisColor, lineColor, grid) 是绘制折线图样式的主体,我提取出了五个属性值作为参数,
分别是x坐标轴数据、y坐标轴数据、x坐标轴指示器的颜色、折线线条的颜色、直角坐标系内绘图网格,
分别获取自 this.impChartData.xData、 this.impChartData.yData、 this.setChartData.xAxisColor、 this.setChartData.lineColor、 this.setChartData.grid
Echarts的 配置项 很多,如果想自定义更加个性化的样式,比如多条折线、两个x轴坐标,都可以设置为参数。
GitHub 上已经有达人做了几张图的基本模板 v-charts ,很方便就是可配置项比较少。
chart.vue:
</br>
参考文档:
Echarts 配置项
C. 有哪些用 javaScript 实现的图形库
D3.js
D3 是最流行的可视化库之一,它被很多其他的表格插件所使用。它允许绑定任意数据到 DOM,然后将数据驱动转换应用到文档中。你可以使用它用一个数组创建基本的
HMTL 表格,或是利用它的流体过度和交互,用相似的数据创建惊人的 SVG 条形图。
ChartJS
Chart.js 是一个令人印象深刻的 JavaScript 图表库,建立在 HTML5 Canvas
基础上。目前,它支持6种图表类型(折线图,条形图,雷达图,饼图,柱状图和极地区域区)。而且,这是一个独立的包,不依赖第三方 JavaScript 库,小于
5KB。
Highcharts JS
Highcharts JS 是一个制作图表的纯 Javascript 类库,主要特性如下:兼容性:兼容当今所有的浏览器,包括 iPhone、IE
和火狐等等;对个人用户完全免 费;纯JS,无BS;支持大部分的图表类型:直线图,曲线图、区域图、区域曲线图、柱状图、饼装图、散布图;跨语言:不管是
PHP、Asp.net 还是 Java 都可以使用。
Fusioncharts
FusionCharts Suite XT 是个专业的 JavaScript
图表库,能创建任何类型的图表。它创建的图表都是可以进行完全自定义的,标签,字体,边界等等,都可以进行修改。它有很强的交互功能,有许多信息提示,可 点击的
legend 关键字,还有 dril-down,缩放/滚动 和单击打印图表功能。
Flot
Flot 是受 Plotr 和 PlotKit 的 启发,Ole Laursen 基于 jQuery 开发了一个图表绘制(WEB Chart)插件并命名为
flot。 flot 是个纯 JavaSript 库,专注于简单的使用方式,迷人的外观和交互式特性。支持的浏览器有: Internet Explorer 6+,
Chrome, Firefox 2+, Safari 3+ and Opera 9.5+。
Chartist.js
Chartist.js 提供了优美的响应图表。就像 ChartJS。它使用 SVG 渲染图,可以被控制,并通过对 CSS3 媒体查询和 SASS
定制。另外 Chartist.js 提供很酷的动画。
n3-charts
如果你是一个 AngularJS 开发者,你一定喜欢款有趣的图表。它是建立在 D3.js 和 AngularJS 的基础上,提供了可定制的
AngularJS 指令的形式不同标准的图表。
Ember Charts
Ember Charts 是一个基于 Ember.js 和 D3.js
的图表库。它包括时间序列、柱状图、饼图、点图,很容易扩展和修改。这些图表组件代表图表交互性和演示的最佳实践,是高度可定制和可扩展的。
Chartkick
Chartkick 是专为 Ruby 应用程序的 JavaScript
图表库。它提供了所有主要的图表类型,如饼图,柱形图,条形图,面积,地理,时间,以及多个系列。
MeteorCharts
它有一个很酷的图表生成器,为您提供选项来选择图表,选择主题,然后生成一个图表。
amCharts
amCharts 无疑是最漂亮的图表库。amCharts 提供了JavaScript/HTML5 Charts、Javascript/HTML5
Stock Chart、JavaScript Maps 三种图表组件。
EJS Chart
EJS图表声称自己是企业准备的图表库。图表看起来很干净,可读性比大多数旧的图表库。这也是与IE6+等旧浏览器兼容。
uvCharts
uvCharts 是一个开源的 JavaScript 图表库,号称有100多个自定义选项。它拥有12种不同的标准图表类型,开箱即用。
ECharts
基于 Canvas,纯 JavaScript
图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。
商业产品常用图表库,底层基于ZRender,创建了坐标系,图例,提示,工具箱等基础组件,并在此上构建出折线图(区域图)、柱状图(条状图)、散点图(气泡图)、饼图(环形图)、K线图、地图、和弦图以及力导向布局图,同时支持任意维度的堆积和多图表混合展现。
D. html怎么用js特效做折线图
使用原生js自己写或js库(框架)都是可以的,由于目前HTML5并不是所有的浏览器都完美支持,使用兼容性比较好的js库是个不错的选择。
例如Highcharts图标库就可以实现各类曲线图、折线图、区域图、3D图、柱状图等等。具体使用参考:http://www.hcharts.cn/demo/index.php。
Highcharts中做折线图的demo代码可以作为参考:
<htmllang="en">
<head>
<scripttype="text/javascript"src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js">
</script>
<scripttype="text/javascript"src="http://cdn.hcharts.cn/highcharts/highcharts.js">
</script>
<scripttype="text/javascript"src="http://cdn.hcharts.cn/highcharts/exporting.js">
</script>
<script>
$(function(){
$('#container').highcharts({
chart:{
type:'line'
},
title:{
text:'MonthlyAverageTemperature'
},
ubtitle:{
text:'Source:WorldClimate.com'
},
xAxis:{
categories:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
},
yAxis:{
title:{
text:'Temperature(°C)'
}
},
tooltip:{
enabled:false,
formatter:function(){
return'<b>'+this.series.name+'</b><br/>'+this.x+':'+this.y+'°C';
}
},
plotOptions:{
line:{
dataLabels:{
enabled:true},
enableMouseTracking:false
}
},
series:[{
name:'Tokyo',
data:[7.0,6.9,9.5,14.5,18.4,21.5,25.2,26.5,23.3,18.3,13.9,9.6]
},{
name:'London',
data:[3.9,4.2,5.7,8.5,11.9,15.2,17.0,16.6,14.2,10.3,6.6,4.8]
}]
});
});
</script>
</head>
<body>
<divid="container"style="min-width:700px;height:400px"></div>
</body>
</html>
E. d3.js鱼眼插件效果是怎么实现的
D3 提供了 4 个方法用于实现图形的过渡:
- transition()
启动过渡效果,其前后是图形变化前后的状态(形状、位置、颜色等等),例如:
.attr("fill","red") //初始颜色为红色.transition() //启动过渡.attr("fill","blue") //终止颜色为蓝色
D3 会自动对两种颜色(红色和蓝色)之间的颜色值(RGB值)进行插值计算,得到过渡用的颜色值。
- ration()
指定过渡的持续时间,单位为毫秒。
如 ration(2000) ,指持续 2000 毫秒,即 2 秒。
- ease()
指定过渡的方式,常用的有:
linear:普通的线性变化
circle:慢慢地到达变换的最终状态
elastic:带有弹跳的到达最终状态
bounce:在最终状态处弹跳几次
调用时,格式形如: ease("bounce")。
- delay()
指定延迟的时间,表示一定时间后才开始转变,单位同样为毫秒。此函数可以对整体指定延迟,也可以对个别指定延迟。
例如,对整体指定时:
如此,图形整体在延迟 500 毫秒后发生变化,变化的时长为 1000 毫秒。因此,过渡的总时长为1500毫秒。
又如,对一个一个的图形(图形上绑定了数据)进行指定时:
如此,假设有 10 个元素,那么第 1 个元素延迟 0 毫秒(因为 i = 0),第 2 个元素延迟 200 毫秒,第 3 个延迟 400 毫秒,依次类推….整个过渡的长度为 200 * 9 + 1000 = 2800 毫秒。
1. 实现简单的动态效果
下面将在 SVG 画布里添加三个圆,圆出现之后,立即启动过渡效果。
- 第一个圆,要求移动 x 坐标
-第二个圆,要求既移动 x 坐标,又改变颜色
-第三个圆,要求既移动 x 坐标,又改变颜色,还改变半径