国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

echarts環(huán)形圖點擊旋轉并高亮

番茄西紅柿 / 3254人閱讀

摘要:通過計算某個扇形區(qū)域的值占整個圓的百分比來得到這個扇形的角度,從而根據這個屬性來設定圖形的開始渲染的角度,使點擊某個扇形時圓環(huán)旋轉使之始終對準某個點。期間考慮到某扇形區(qū)域太小點擊不到,來設置最小扇形區(qū)域。

通過計算某個扇形區(qū)域的值占整個圓的百分比來得到這個扇形的角度,從而根據startAngle這個屬性來設定圖形的開始渲染的角度,使點擊某個扇形時圓環(huán)旋轉使之始終對準某個點。 期間考慮到某扇形區(qū)域太小點擊不到,來設置最小扇形區(qū)域。 const myChartContainer = document.getElementById( chart ); const myChart = echarts.init( myChartContainer ); let minAngle = 30;// 最小扇形區(qū)域為30 for ( let i = 0; i < obj.data.length; i++ ) { //某項數據為0時,最小扇形區(qū)域為0  if ( obj.data[ i ].value === 0 ) {   minAngle = 0;   break;  } } const pieValue = obj.data.map( v => {   return v.value; } ) const sum = pieValue.reduce( ( prev, cur ) => {//數據值的總和  return prev + cur; }, 0 );
const sum2 = pieValue.reduce( ( prev, cur ) => {  if ( cur < sum / 12 && cur > 0 ) {//某個值大于0小于總和的1/12即30時,按30計算和   return prev + sum / 12;  }  return prev + cur; }, 0 ); let initPieValue = pieValue[ 0 ];// 初始值 if ( initPieValue < sum / 12 && initPieValue > 0 ) {  initPieValue = sum / 12; } const option = { tooltip: {  show: false,  trigger: item,  formatter: {a}
: {c} (jrxrbfl%) }, legend: {  show: false,  orient: vertical,  x: left }, color: [ #44bbf8, #93e588, #ffd87b, #f88071 ], series: [ {  name: ,  type: pie,  radius: [ 45%, 79% ],  clockWise: false,  startAngle: 167 - ( initPieValue / sum2 * 360 / 2 ),  minAngle: minAngle,  avoidLabelOverlap: false, itemStyle: {  emphasis: {   radius: [ 46%, 100% ]  } }, label: {  normal: {   show: false,   position: center  },  emphasis: {   show: false,   textStyle: {   fontSize: 30,   fontWeight: bold   }  } }, labelLine: {   normal: {    show: false   } },  data: obj.data   }  ] }; myChart.setOption( option ); if ( minAngle === 30 ) {  //最小扇形區(qū)域30時 myChart.dispatchAction( { type: highlight, seriesIndex: 0, dataIndex: 0 } ); }
let preDataIndex = 0; myChart.on( click, ( v ) => {  if ( v.dataIndex === preDataIndex ) {   myChart.dispatchAction( {   type: highlight,   seriesIndex: 0,   dataIndex: v.dataIndex  } );  return; } const sum1 = pieValue.reduce( ( prev, cur, index ) => {  if ( index < v.dataIndex ) {   if ( cur < sum / 12 && cur > 0 ) {    return prev + sum / 12; // 餅圖的扇形最小角度設置為30,占圓的1/12   }   return prev + cur;  }  return prev; }, 0 ); let curPieValue = pieValue[ v.dataIndex ]; if ( curPieValue < sum / 12 && curPieValue > 0 ) {  curPieValue = sum / 12; } option.series[ 0 ].startAngle = 167 - ( sum1 / sum2 * 360 + curPieValue / sum2 * 360 / 2 );// 開始渲染圖形的角度 myChart.setOption( option ); preDataIndex = v.dataIndex; window.setTimeout( () => {  myChart.dispatchAction( {  type: highlight,  seriesIndex: 0,  dataIndex: v.dataIndex  } ); }, 400 );
this.mrkName = v.data.name; this.mrkValue = v.data.value; } );

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/1808.html

相關文章

  • 數據可視化實踐

    摘要:但如果數據可視化做的較弱,反而會帶來負面效果錯誤的表達往往會損害數據的傳播,完全曲解和誤導用戶,所以更需要我們多維的展現數據,就不僅僅是單一層面,目前有多種第三方庫來實現數據的可視化等。數據可視化的具體實現這里基于兩種實現方式,一種一種。 數據可視化的目的其實就是直觀地展現數據,例如讓花費數小時甚至更久才能歸納的數據量,轉化成一眼就能讀懂的指標;通過加減乘除、各類公式權衡計算得到的兩組...

    PrototypeZ 評論0 收藏0
  • 每周前端開源推薦第六期

    摘要:每周前端開源推薦第六期從名字就可以很容易的看出該項目的作用,解壓縮。同時支持瀏覽器和。是任務調度的項目。初始化定義人物每三分鐘觸發(fā)一次觸發(fā)一個交互式學習的方式。強烈建議大家先去體驗一下的介紹是由百度團隊開發(fā)的一款開源圖表項目。 每周前端開源推薦第六期 43081j / rar.js Pure-JavaScript RAR reader using AJAX, File API...

    Salamander 評論0 收藏0
  • 每周前端開源推薦第六期

    摘要:每周前端開源推薦第六期從名字就可以很容易的看出該項目的作用,解壓縮。同時支持瀏覽器和。是任務調度的項目。初始化定義人物每三分鐘觸發(fā)一次觸發(fā)一個交互式學習的方式。強烈建議大家先去體驗一下的介紹是由百度團隊開發(fā)的一款開源圖表項目。 每周前端開源推薦第六期 43081j / rar.js Pure-JavaScript RAR reader using AJAX, File API...

    channg 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<