色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

Python基于pyecharts實現(xiàn)關(guān)聯(lián)圖繪制

瀏覽:104日期:2022-07-31 18:58:25

生活中有很多需要用到關(guān)聯(lián)圖的地方,至少我認為的是這樣的圖:https://www.echartsjs.com/examples/zh/editor.html?c=graph-npm

Python基于pyecharts實現(xiàn)關(guān)聯(lián)圖繪制

我是在使用Word2Vec計算關(guān)聯(lián)詞的余弦距離之后,想要更好的展示出來的時候,遇到的這種情況,就做了下拓展。

畫圖的步驟主要分為:

1. 將距離數(shù)據(jù)(或者相關(guān)數(shù)據(jù))讀入;

2. 按照一定的格式和參數(shù)將數(shù)據(jù)保存為json字符串;

3. 根據(jù)json串,繪制關(guān)聯(lián)圖。

具體而言,主要是:

<1>. 首先有一批數(shù)據(jù),如圖所示:

Python基于pyecharts實現(xiàn)關(guān)聯(lián)圖繪制

<2>. 導(dǎo)入所需要的包

import jsonimport pandas as pdimport randomimport copy

<3>. 產(chǎn)生顏色隨機值的函數(shù)

# 隨機顏色def randomcolor_func(): color_char = [’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’] color_code = '' for i in range(6): color_code += color_char[random.randint(0,14)] # randint包括前后節(jié)點0和14 return '#'+color_code

<4>. 生成隨機坐標

# 隨機坐標#生成隨機數(shù),浮點類型def generate_position(n):# n = 10 for i in range(n): x = round(random.uniform(-2000, 2000), 5) #一定范圍內(nèi)的隨機數(shù),范圍可變 y = round(random.uniform(-2000, 2000), 5) #控制隨機數(shù)的精度round(數(shù)值,精度) return x, y

<5>. 生成json格式的節(jié)點數(shù)據(jù)

def create_json(data, weights): # 自定義節(jié)點 address_dict = {'nodes':[], 'edges':[]} node_dict = { 'color': '', 'label': '', 'attributes': {}, 'y': None, 'x': None, 'id': '', 'size': None } edge_dict = { 'sourceID': '', 'attributes': {}, 'targetID': '', 'size': None } # 給節(jié)點賦值 for ii in range(len(data)): for jj in range(len(data.iloc[ii])): # node,'attributes'屬性可自行設(shè)置 node_dict[r'color'] = randomcolor_func() node_dict[r'label'] = data.iloc[ii, jj] x, y = generate_position(1) node_dict[r'y'] = y node_dict[r'x'] = x node_dict[r'id'] = data.iloc[ii, jj] node_dict[r'size'] = int(weights.loc[data.iloc[ii, jj]]) tmp_node = copy.deepcopy(node_dict) address_dict[r'nodes'].append(tmp_node)for ii in range(len(data)): for jj in range(1, len(data.iloc[ii])): # edge edge_dict[r'sourceID'] = data.iloc[ii, 0] edge_dict[r'targetID'] = data.iloc[ii, jj] edge_dict[r'size'] = 2 tmp_edge = copy.deepcopy(edge_dict) address_dict['edges'].append(tmp_edge) return address_dict

<6>. 主函數(shù)生成json數(shù)據(jù)

if __name__ == ’__main__’: # read data data = pd.read_excel(r’test_josn_data.xlsx’, 0) weights = pd.DataFrame({'詞頻':[100, 40, 30, 20, 90, 50, 35, 14, 85, 38, 29, 10]}, index = [’球類’,’籃球’,’足球’,’羽毛球’,’美食’,’肯德基’,’火鍋’,’烤魚’,’飲料’,’可樂’,’紅茶’,’奶茶’]) #建立索引權(quán)值列表 address_dict = create_json(data, weights) with open('write_json.json', 'w', encoding=’utf-8’) as f: # json.dump(dict_, f) # 寫為一行 json.dump(address_dict, f, indent=2, ensure_ascii=False) # 寫為多行

最后形成的json數(shù)據(jù)如下:

Python基于pyecharts實現(xiàn)關(guān)聯(lián)圖繪制

<7>. 繪制關(guān)聯(lián)圖,里面的文件讀取和保存地址自行修改,write_json.json 就是上面保存的json文件

import pyecharts.options as optsfrom pyecharts.charts import Graphimport jsonwith open(r'D:Python_workspacespyder_spacetest_各種功能write_json.json', encoding=’utf-8’) as f: #設(shè)置以utf-8解碼模式讀取文件,encoding參數(shù)必須設(shè)置,否則默認以gbk模式讀取文件,當文件中包含中文時,會報錯 data = json.load(f)#print(data)nodes = [ { 'x': node['x'], 'y': node['y'], 'id': node['id'], 'name': node['label'], 'symbolSize': node['size'], 'itemStyle': {'normal': {'color': node['color']}}, } for node in data['nodes']]edges = [{'source': edge['sourceID'], 'target': edge['targetID']} for edge in data['edges']]( Graph(init_opts=opts.InitOpts(width='1600px', height='800px')) .add( series_name='', nodes=nodes, links=edges, layout='none', is_roam=True, is_focusnode=True, label_opts=opts.LabelOpts(is_show=True), linestyle_opts=opts.LineStyleOpts(width=0.5, curve=0.3, opacity=0.7), ) .set_global_opts(title_opts=opts.TitleOpts(title='熱詞對應(yīng)的關(guān)聯(lián)詞')) .render('關(guān)聯(lián)詞圖.html'))

最后,就生成了最開始的那張圖。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 亚洲成人7777| 视频一区久久 | 亚洲天堂网在线播放 | 亚洲国产欧洲精品路线久久 | 国内自拍在线观看 | 国产亚洲精品久久久久久午夜 | 美女张开腿让我 | 成人爽爽大片在线观看 | 手机在线精品视频每日更新 | 中文字幕亚洲综合久久男男 | 欧美在线高清视频 | 欧美高清一级啪啪毛片 | 国产成人综合91精品 | 超级碰碰碰视频视频在线视频 | 韩国免费a级毛片 | 交视频在线观看国产网站 | 国产欧美日本在线观看 | 成人精品一区二区久久 | 久久99视频精品 | 亚洲欧美中文字幕在线网站 | 狠狠综合久久久久综合小说网 | 在线播放高清国语自产拍免费 | 欧美色欧 | 欧美视频在线一区二区三区 | 久久国产成人精品国产成人亚洲 | 免费看特级毛片 | 亚洲人成日本在线观看 | 亚洲精品手机在线 | 99国产精品欧美久久久久久影院 | 男女无遮掩做爰免费视频软件 | 久久精品国产线看观看亚洲 | 日韩经典中文字幕 | 成人毛片一区二区三区 | 老太婆性杂交毛片 | 亚洲午夜在线观看 | 精品综合 | 亚洲高清中文字幕一区二区三区 | 国产欧美一区二区三区在线看 | 全部免费的毛片在线看美国 | 2021国产精品自在拍在线播放 | 亚洲精品日韩在线一区 |