电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

Python基于pyecharts實現關聯圖繪制

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

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

Python基于pyecharts實現關聯圖繪制

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

畫圖的步驟主要分為:

1. 將距離數據(或者相關數據)讀入;

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

3. 根據json串,繪制關聯圖。

具體而言,主要是:

<1>. 首先有一批數據,如圖所示:

Python基于pyecharts實現關聯圖繪制

<2>. 導入所需要的包

import jsonimport pandas as pdimport randomimport copy

<3>. 產生顏色隨機值的函數

# 隨機顏色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包括前后節點0和14 return '#'+color_code

<4>. 生成隨機坐標

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

<5>. 生成json格式的節點數據

def create_json(data, weights): # 自定義節點 address_dict = {'nodes':[], 'edges':[]} node_dict = { 'color': '', 'label': '', 'attributes': {}, 'y': None, 'x': None, 'id': '', 'size': None } edge_dict = { 'sourceID': '', 'attributes': {}, 'targetID': '', 'size': None } # 給節點賦值 for ii in range(len(data)): for jj in range(len(data.iloc[ii])): # node,'attributes'屬性可自行設置 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>. 主函數生成json數據

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 = [’球類’,’籃球’,’足球’,’羽毛球’,’美食’,’肯德基’,’火鍋’,’烤魚’,’飲料’,’可樂’,’紅茶’,’奶茶’]) #建立索引權值列表 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數據如下:

Python基于pyecharts實現關聯圖繪制

<7>. 繪制關聯圖,里面的文件讀取和保存地址自行修改,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: #設置以utf-8解碼模式讀取文件,encoding參數必須設置,否則默認以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='熱詞對應的關聯詞')) .render('關聯詞圖.html'))

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

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

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 珠海网站建设_响应网站建设_珠海建站公司_珠海网站设计与制作_珠海网讯互联 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 深圳富泰鑫五金_五金冲压件加工_五金配件加工_精密零件加工厂 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 捷码低代码平台 - 3D数字孪生_大数据可视化开发平台「免费体验」 | 陶瓷加热器,履带式加热器-吴江市兴达电热设备厂 | 雷蒙磨,雷蒙磨粉机,雷蒙磨机 - 巩义市大峪沟高峰机械厂 | 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 福建自考_福建自学考试网 | 多功能真空滤油机_润滑油全自动滤油机_高效真空滤油机价格-重庆润华通驰 | crm客户关系管理系统,销售管理系统,crm系统,在线crm,移动crm系统 - 爱客crm | 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 | 奥运星-汽车性能网评-提供个性化汽车资讯 | 危废处理系统,水泥厂DCS集散控制系统,石灰窑设备自动化控制系统-淄博正展工控设备 | 菲希尔X射线测厚仪-菲希尔库伦法测厚仪-无锡骏展仪器有限责任公司 | 口臭的治疗方法,口臭怎么办,怎么除口臭,口臭的原因-口臭治疗网 | 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 【北京写字楼出租_写字楼租赁_办公室出租网/出售】-远行地产官网 | LINK FASHION 童装·青少年装展| 铝合金线槽_铝型材加工_空调挡水板厂家-江阴炜福金属制品有限公司 | 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 钣金加工厂家-钣金加工-佛山钣金厂-月汇好 | 据信,上课带着跳 D 体验-别样的课堂刺激感受引发网友热议 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] | 曙光腾达官网-天津脚手架租赁-木板架出租-移动门式脚手架租赁「免费搭设」 | 郑州爱婴幼师学校_专业幼师培训_托育师培训_幼儿教育培训学校 | 整车VOC采样环境舱-甲醛VOC预处理舱-多舱法VOC检测环境仓-上海科绿特科技仪器有限公司 | 热工多功能信号校验仪-热电阻热电偶校验仿真仪-金湖虹润仪表 | 一体化净水器_一体化净水设备_一体化水处理设备-江苏旭浩鑫环保科技有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 热闷罐-高温罐-钢渣热闷罐-山东鑫泰鑫智能热闷罐厂家 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 船用锚链|专业锚链生产厂家|安徽亚太锚链制造有限公司 | 智慧物联网行业一站式解决方案提供商-北京东成基业 | 四合院设计_四合院装修_四合院会所设计-四合院古建设计与建造中心1 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 自动螺旋上料机厂家价格-斗式提升机定制-螺杆绞龙输送机-杰凯上料机 |