日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

html5 - 在echarts3中怎么使用echarts2中的wordCloud

瀏覽:170日期:2022-06-23 18:34:11

問題描述

1.問題 項目中需要用到字符云 我在項目中導入的是echarts3 echarts3中沒有wordCloud 的api 同時 下載的echarts3中也沒有wordCloud.js 只有2中有wordCloud.js 不知道在echarts3中怎么使用echarts2中的wordCloud 主要是echarts2跟3還是有很大區別的 首先 導入方式不一樣 其次 api很多東西都不一樣 再者 我不能兩個echarts都導入吧2.報錯

html5 - 在echarts3中怎么使用echarts2中的wordCloud

3.希望 希望可以在這方面有經驗的大神可以給個解決方法 謝過

問題解答

回答1:

自己已解決 引入外部文件 jqcloud

/*! * jQCloud Plugin for jQuery * * Version 1.0.4 * * Copyright 2011, Luca Ongaro * Licensed under the MIT license. * * Date: 2013-05-09 18:54:22 +0200*/(function( $ ) { 'use strict'; $.fn.jQCloud = function(word_array, options) { // Reference to the container element var $this = this; // Namespace word ids to avoid collisions between multiple clouds var cloud_namespace = $this.attr(’id’) || Math.floor((Math.random()*1000000)).toString(36); // Default options value var default_options = { width: $this.width(), height: $this.height(), center: {x: ((options && options.width) ? options.width : $this.width()) / 2.0,y: ((options && options.height) ? options.height : $this.height()) / 2.0 }, delayedMode: word_array.length > 50, shape: false, // It defaults to elliptic shape encodeURI: true, removeOverflowing: true,isSelfColor:false,//是否自定義樣式isSelfRotate:false//是否自定義角度 }; options = $.extend(default_options, options || {}); // Add the 'jqcloud' class to the container for easy CSS styling, set container width/height $this.addClass('jqcloud').width(options.width).height(options.height); // Container’s CSS position cannot be ’static’ if ($this.css('position') === 'static') { $this.css('position', 'relative'); } var drawWordCloud = function() { // Helper function to test if an element overlaps others var hitTest = function(elem, other_elems) {// Pairwise overlap detectionvar overlapping = function(a, b) { if (Math.abs(2.0*a.offsetLeft + a.offsetWidth - 2.0*b.offsetLeft - b.offsetWidth) < a.offsetWidth + b.offsetWidth) { if (Math.abs(2.0*a.offsetTop + a.offsetHeight - 2.0*b.offsetTop - b.offsetHeight) < a.offsetHeight + b.offsetHeight) { return true; } } return false;};var i = 0;// Check elements for overlap one by one, stop and return false as soon as an overlap is foundfor(i = 0; i < other_elems.length; i++) { if (overlapping(elem, other_elems[i])) { return true; }}return false; }; // Make sure every weight is a number before sorting for (var i = 0; i < word_array.length; i++) {word_array[i].weight = parseFloat(word_array[i].weight, 10); } // Sort word_array from the word with the highest weight to the one with the lowest word_array.sort(function(a, b) { if (a.weight < b.weight) {return 1;} else if (a.weight > b.weight) {return -1;} else {return 0;} }); var step = (options.shape === 'rectangular') ? 18.0 : 2.0, already_placed_words = [], aspect_ratio = options.width / options.height; // Function to draw a word, by moving it in spiral until it finds a suitable empty place. This will be iterated on each word. var drawOneWord = function(index, word) {// Define the ID attribute of the span that will wrap the word, and the associated jQuery selector stringvar word_id = cloud_namespace + '_word_' + index, word_selector = '#' + word_id, angle = 6.28 * Math.random(), radius = 0.0, // Only used if option.shape == ’rectangular’ steps_in_direction = 0.0, quarter_turns = 0.0, weight = 5, custom_class = '', inner_html = '', word_span;// Extend word html options with defaultsword.html = $.extend(word.html, {id: word_id});// If custom class was specified, put them into a variable and remove it from html attrs, to avoid overwriting classes set by jQCloudif (word.html && word.html['class']) { custom_class = word.html['class']; delete word.html['class'];}// Check if min(weight) > max(weight) otherwise use defaultif (word_array[0].weight > word_array[word_array.length - 1].weight) { // Linearly map the original weight to a discrete scale from 1 to 10 weight = Math.round((word.weight - word_array[word_array.length - 1].weight) / (word_array[0].weight - word_array[word_array.length - 1].weight) * 9.0) + 1;}word_span = $(’<span>’).attr(word.html).addClass(’w’ + weight + ' ' + custom_class);// Append link if word.url attribute was setif (word.link) { // If link is a string, then use it as the link href if (typeof word.link === 'string') { word.link = {href: word.link}; } // Extend link html options with defaults if ( options.encodeURI ) { word.link = $.extend(word.link, { href: encodeURI(word.link.href).replace(/’/g, '%27') }); } inner_html = $(’<a>’).attr(word.link).text(word.text);} else { inner_html = word.text;}word_span.append(inner_html);// Bind handlers to wordsif (!!word.handlers) { for (var prop in word.handlers) { if (word.handlers.hasOwnProperty(prop) && typeof word.handlers[prop] === ’function’) { $(word_span).bind(prop, word.handlers[prop]); } }}$this.append(word_span);var width = word_span.width(), height = word_span.height(), left = options.center.x - width / 2.0, top = options.center.y - height / 2.0;// Save a reference to the style property, for better performancevar word_style = word_span[0].style;word_style.position = 'absolute';word_style.left = left + 'px';word_style.top = top + 'px';word_style.transform= '';word_style.color= '';while(hitTest(word_span[0], already_placed_words)) { // option shape is ’rectangular’ so move the word in a rectangular spiral if (options.shape === 'rectangular') { steps_in_direction++; if (steps_in_direction * step > (1 + Math.floor(quarter_turns / 2.0)) * step * ((quarter_turns % 4 % 2) === 0 ? 1 : aspect_ratio)) { steps_in_direction = 0.0; quarter_turns++; } switch(quarter_turns % 4) { case 1:left += step * aspect_ratio + Math.random() * 2.0;break; case 2:top -= step + Math.random() * 2.0;break; case 3:left -= step * aspect_ratio + Math.random() * 2.0;break; case 0:top += step + Math.random() * 2.0;break; } } else { // Default settings: elliptic spiral shape radius += step; angle += (index % 2 === 0 ? 1 : -1)*step; left = options.center.x - (width / 2.0) + (radius*Math.cos(angle)) * aspect_ratio; top = options.center.y + radius*Math.sin(angle) - (height / 2.0); } word_style.left = left + 'px'; word_style.top = top + 'px'; //判斷是否隨機角度 if(default_options.isSelfRotate==true){ word_style.transform='rotate('+parseInt(Math.random()*40-10)+'deg)';//隨機角度 } //判斷是否自定義樣式 if(default_options.isSelfColor==true){ word_style.color=’rgb(’ + [ Math.round(Math.random() * 248), 174, 63].join(’,’) + ’)’;//隨機顏色--橘色系 }}// Don’t render word if part of it would be outside the containerif (options.removeOverflowing && (left < 0 || top < 0 || (left + width) > options.width || (top + height) > options.height)) { word_span.remove() return;}already_placed_words.push(word_span[0]);// Invoke callback if existingif ($.isFunction(word.afterWordRender)) { word.afterWordRender.call(word_span);} }; var drawOneWordDelayed = function(index) {index = index || 0;if (!$this.is(’:visible’)) { // if not visible then do not attempt to draw setTimeout(function(){drawOneWordDelayed(index);},10); return;}if (index < word_array.length) { drawOneWord(index, word_array[index]); setTimeout(function(){drawOneWordDelayed(index + 1);}, 10);} else { if ($.isFunction(options.afterCloudRender)) { options.afterCloudRender.call($this); }} }; // Iterate drawOneWord on every word. The way the iteration is done depends on the drawing mode (delayedMode is true or false) if (options.delayedMode){drawOneWordDelayed(); } else {$.each(word_array, drawOneWord);if ($.isFunction(options.afterCloudRender)) { options.afterCloudRender.call($this);} } }; // Delay execution so that the browser can render the page before the computatively intensive word cloud drawing setTimeout(function(){drawWordCloud();}, 10); return $this; };})(jQuery);

標簽: word
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
蜜臀久久99精品久久久久久9| 欧美91福利在线观看| 国产精品毛片久久| 日韩三级久久| 狠狠久久婷婷| 四虎4545www国产精品 | 美女精品视频在线| 中文一区一区三区免费在线观 | 亚洲成人不卡| 精品久久久久中文字幕小说| 国产毛片一区二区三区| 精品久久影院| 久久免费福利| 精品一级视频| 国产精品久久久久毛片大屁完整版 | 亚洲一级二级| 日韩精品2区| av免费不卡国产观看| 精品国产亚洲一区二区三区大结局| 欧美日韩亚洲三区| 日韩激情av在线| 国产午夜精品一区在线观看| 国产伦精品一区二区三区在线播放 | 欧美日韩一区二区高清| 国产精品亚洲二区| 日本成人手机在线| 日韩精品久久久久久久软件91| 日韩一区中文| 欧美视频二区| 国产精品一区二区三区av麻| 国产成年精品| 欧美男人天堂| 天堂√中文最新版在线| 久久精品播放| 欧美+亚洲+精品+三区| 久久精品动漫| 亚洲天堂免费| 综合色一区二区| 日韩中文一区二区| 啪啪亚洲精品| 九九99久久精品在免费线bt| 欧美成a人国产精品高清乱码在线观看片在线观看久| 国精品产品一区| 亚洲一区资源| 蜜桃久久久久久久| 综合激情一区| 欧美激情视频一区二区三区免费| 丝袜美腿一区| 欧美午夜精彩| 日韩精品高清不卡| 国产精品一区二区免费福利视频| 国产精品白浆| 婷婷成人在线| 国产在线不卡| 亚洲狼人精品一区二区三区| 日韩精品导航| 美腿丝袜亚洲三区| 久久高清免费| 视频一区国产视频| 久久精品资源| 99精品网站| 日韩av一二三| 国产粉嫩在线观看| 亚洲欧美日韩高清在线| 国产精品亚洲人成在99www| 午夜av不卡| 激情偷拍久久| 国产精品天堂蜜av在线播放| 精品一区视频| 国产综合精品一区| 你懂的网址国产 欧美| 色88888久久久久久影院| 久久亚洲美女| 蜜桃精品在线| 欧美久久一区二区三区| 久久久久久久久久久妇女| 日韩精品一区二区三区av| 国产日韩1区| 亚洲网站视频| 欧美亚洲tv| 在线亚洲激情| 免费一级欧美在线观看视频| 欧美日韩三区| 国产毛片一区二区三区| 青青青国产精品| 亚洲电影在线一区二区三区| 亚洲精品字幕| 日韩欧美看国产| 久久国产精品久久w女人spa| 精品淫伦v久久水蜜桃| 日韩专区欧美专区| 日韩视频网站在线观看| 日本a口亚洲| 欧美日韩水蜜桃| 欧美激情aⅴ一区二区三区 | 国产亚洲欧美日韩精品一区二区三区 | 国产三级一区| 性欧美69xoxoxoxo| 正在播放日韩精品| 亚州国产精品| 国产视频一区三区| 国产一区二区精品福利地址| 亚洲一区亚洲| 精品视频一二| 日韩av三区| 久久精品一区二区不卡| 中文字幕人成乱码在线观看| 亚洲va久久久噜噜噜久久| 久久精品国产www456c0m| 国产亚洲精品美女久久久久久久久久| 欧美中文字幕一区二区| 国产精品久久| 日韩精品三级| 国产视频一区免费看| 成人亚洲精品| 精品国产美女a久久9999| 日韩精品三级| 都市激情国产精品| 国产精品久久| 亚洲色图综合| 四季av一区二区凹凸精品| 精品中文在线| 国产精品一区免费在线| 欧美一级二区| 蜜桃视频在线观看一区二区| 国产精品久久久久9999高清| 欧美亚洲国产日韩| 亚洲乱码视频| 1024精品久久久久久久久| 亚洲二区精品| 91一区二区| 美女福利一区二区三区| 精品日韩在线| 日本三级亚洲精品| 亚洲一级淫片| 亚洲午夜黄色| 久久五月天小说| 亚洲色诱最新| 亚洲欧美日韩一区在线观看| 91超碰国产精品| 午夜视频精品| 免费人成精品欧美精品| 久久天堂成人| 亚洲国产一区二区三区在线播放 | 国产精品伊人| 精品亚洲成人| 92国产精品| 99国产精品久久久久久久成人热 | 久久国产视频网| 99免费精品| 97成人超碰| 免费久久99精品国产自在现线| 亚洲日本三级| 亚洲精品观看| 国产综合色区在线观看| 久久一二三区| 亚洲午夜黄色| 久久一区精品| 亚洲高清av| 亚洲aa在线| 日韩国产91| 日韩和欧美一区二区三区| 国产福利资源一区| 欧美aa在线观看| 免费成人在线影院| 欧美激情麻豆| 免费av一区| 国产麻豆一区| 伊人久久高清| 涩涩涩久久久成人精品| 国产一区精品福利| 免费久久精品| 欧美日韩国产一区二区在线观看| а√在线中文在线新版| 国产手机视频一区二区| 国产精品亚洲综合在线观看| 97视频热人人精品免费| 午夜在线精品偷拍| 欧美一级二级视频| 欧美日中文字幕| 国产精品玖玖玖在线资源| 宅男在线一区| 国产精品2023| 亚洲激情偷拍| 精品一区二区三区中文字幕在线| 亚洲精品在线观看91| 国产精品久久久久久久免费软件| 99成人超碰| 国产精品久久久一区二区| 精品一区亚洲| 麻豆精品少妇| 免费精品国产| 精品五月天堂| 免费观看在线色综合| 91青青国产在线观看精品| 一区二区三区四区日韩| 水蜜桃精品av一区二区| 日本中文字幕视频一区| 1024精品一区二区三区| 欧美极品中文字幕|