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 坐標,又改變顏色,還改變半徑