日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

基于Harry Potter的数据可视化

發(fā)布時(shí)間:2023/12/16 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Harry Potter的数据可视化 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

目的:

任務(wù):

過(guò)程:

1.數(shù)據(jù)加載及整理

①加載必要的環(huán)境庫(kù)

②讀取文件:

③整理數(shù)據(jù)

2.全體人物關(guān)系網(wǎng)絡(luò)圖的繪制。

3.主角三人關(guān)系網(wǎng)絡(luò)圖的繪制。

4.保存圖片。

數(shù)據(jù)文件:

relation工作簿

?character工作簿

代碼部分:

① 通過(guò)openpyxl讀取xlsx的數(shù)據(jù)

?②數(shù)據(jù)處理,把工作簿一和工作簿二的數(shù)據(jù)進(jìn)行整合處理。得到name之間對(duì)應(yīng)的關(guān)系。

?③通過(guò)networkx繪制所有人物之間的社交關(guān)系圖。

?④通過(guò)networkx繪制哈利波特三個(gè)主角人物之間的社交關(guān)系圖

代碼簡(jiǎn)化版:

數(shù)據(jù)資源:


目的:

1.熟悉networkx和openpyxl使用
2.掌握python中數(shù)據(jù)整理的方法
3.掌握networkx中node和edge的使用

任務(wù):

1.數(shù)據(jù)加載及整理
2.繪制全體人物關(guān)系網(wǎng)絡(luò)圖
3.繪制主角三人的關(guān)系網(wǎng)絡(luò)圖?
4.保存圖片

過(guò)程:

1.數(shù)據(jù)加載及整理

①加載必要的環(huán)境庫(kù)

打開(kāi)python,加載openpyxl、networkx、matplotlib.pyplot這三個(gè)環(huán)境庫(kù)

②讀取文件:

通過(guò)openpyxl.load_workbook來(lái)讀取數(shù)據(jù)文件。

③整理數(shù)據(jù)

由于networkX是根據(jù)edge的關(guān)系來(lái)繪圖,我們需要將關(guān)系整理成為元組格式,如('Sirius Black', 'Harry Potter')編號(hào)轉(zhuǎn)名字
。將所有關(guān)系保存到列表里即可使用add_edges_from來(lái)繪制關(guān)系圖。
我們拿到的數(shù)據(jù)有兩個(gè)分頁(yè),分頁(yè)character含有全部的哈利波特全部的人物姓名和id號(hào)及任務(wù)簡(jiǎn)介;分頁(yè)relation含有帶有id號(hào)的人物關(guān)系,但是該分頁(yè)沒(méi)有人物的姓名。我們需要整理數(shù)據(jù)為以下格式:('Sirius Black', 'Harry Potter')

2.全體人物關(guān)系網(wǎng)絡(luò)圖的繪制。

整理好數(shù)據(jù)后,我們首先需要使用plt.figure(figsize = (40,30))調(diào)整畫(huà)布大小,然后建立無(wú)向圖,加邊的集合,繪制圖形,顯示圖形,最終結(jié)果參考下圖(此為實(shí)驗(yàn)成果物1):

3.主角三人關(guān)系網(wǎng)絡(luò)圖的繪制。

根據(jù)上圖我們可以看出由于作品設(shè)計(jì)到的人物眾多,展示全部關(guān)系較為雜亂,我們此處只展示與主角三人有直接關(guān)系的網(wǎng)絡(luò)圖,我們整理數(shù)據(jù),然后按照成果物1的步驟制作主角三人關(guān)系網(wǎng)絡(luò)圖。
此為成果物2.如下圖

4.保存圖片。

我們使用如下命令保存plt.savefig("文件名.png",format ="PNG"),使用時(shí)需注意,我們需要注釋掉show函數(shù)才能保存,注釋方法如下:#plt.show()

數(shù)據(jù)文件:

relation工作簿

source字段為來(lái)源id即對(duì)應(yīng)的姓名,target字段為目標(biāo)人物id姓名

?character工作簿

第二個(gè)工作簿character,id對(duì)應(yīng)第一個(gè)工作簿的id,需要將2個(gè)工作簿進(jìn)行結(jié)合,id轉(zhuǎn)化為name。以便后續(xù)可視化的進(jìn)行。

代碼部分:

① 通過(guò)openpyxl讀取xlsx的數(shù)據(jù)

from openpyxl import load_workbook #加載Excel woj=load_workbook(filename=r'D:\Gogle_download\harry potter.xlsx') #獲取表單名稱 names=woj.sheetnames #獲取表單對(duì)象 shett_object1=woj.worksheets[0]#relation #帶有id號(hào)的人物關(guān)系,但是該分頁(yè)沒(méi)有人物的姓名 shett_object2=woj.worksheets[1]#character #哈利波特全部的人物姓名和id號(hào)及任務(wù)簡(jiǎn)介 #行切片獲得數(shù)據(jù) ## values_only false:返回對(duì)象 true:返回單元格對(duì)應(yīng)的數(shù)據(jù) result=shett_object1.iter_rows(min_row=2,max_row=514,min_col=1,max_col=2,values_only=True) result=list(result) result2=shett_object2.iter_rows(min_row=2,max_row=66,min_col=1,max_col=3,values_only=True) result2=list(result2)

?②數(shù)據(jù)處理,把工作簿一和工作簿二的數(shù)據(jù)進(jìn)行整合處理。得到name之間對(duì)應(yīng)的關(guān)系。

t1=[]#存放編號(hào) t2=[]#存放名字 for j in result2:t1.append(j[0])t2.append(j[1]) namedict=dict(zip(t1,t2)) #創(chuàng)建字典用于后續(xù)把編號(hào)轉(zhuǎn)化為名字 resultall=[] for j in result:resultall.append([namedict[j[0]],namedict[j[1]]]) #創(chuàng)建名字關(guān)系 resultall2=[] for j3 in resultall:resultall2.append(tuple(j3)) #列表轉(zhuǎn)化為元組

?③通過(guò)networkx繪制所有人物之間的社交關(guān)系圖。

from matplotlib import pyplot as plt import networkx as nx plt.figure(figsize = (40,30))#調(diào)整畫(huà)布大小 G=nx.Graph() #節(jié)點(diǎn)為單個(gè)名字 G.add_nodes_from(namedict.values())#創(chuàng)建節(jié)點(diǎn) 通過(guò)獲得字典的鍵來(lái)得到 G.add_edges_from(resultall2)#邊的關(guān)系 nx.draw_networkx(G)#全體人物關(guān)系圖 #plt.show() plt.savefig("allrelation.png",format="PNG") #成果物1

結(jié)果展示:

?④通過(guò)networkx繪制哈利波特三個(gè)主角人物之間的社交關(guān)系圖

三個(gè)主角分別為:赫敏、羅恩、哈利波特

#只畫(huà)與主角三人有關(guān)系的 #Hermione Granger #Harry Potter #Ron Weasley #只畫(huà)與主角有關(guān)系的 zhujiao=[] for j in result:if namedict[j[0]]=='Harry Potter' or namedict[j[0]]=='Hermione Granger' or namedict[j[0]]=='Ron Weasley' or namedict[j[1]]=='Harry Potter' or namedict[j[1]]=='Hermione Granger' or namedict[j[1]]=='Ron Weasley': zhujiao.append([namedict[j[0]],namedict[j[1]]])#找出主角所有的關(guān)系圖 zhujiaojiedian=[] for i in zhujiao:zhujiaojiedian.append(i[0])zhujiaojiedian.append(i[1]) #去重,去掉重復(fù)的名字 zhujiaojiedian=list(set(zhujiaojiedian)) from matplotlib import pyplot as plt import networkx as nx plt.figure(figsize = (40,30))#調(diào)整畫(huà)布大小 G2=nx.Graph() G2.add_nodes_from(zhujiaojiedian)#創(chuàng)建節(jié)點(diǎn) G2.add_edges_from(zhujiao)#邊的關(guān)系 nx.draw_networkx(G2)#全體人物關(guān)系圖 #plt.show() plt.savefig("zhujiao.png",format="PNG")#保存圖片 #成果物2

結(jié)果展示:

代碼簡(jiǎn)化版:

from openpyxl import load_workbook #加載Excel hp=load_workbook(harry potter.xlsx') import networkx as nx import matplotlib.pyplot as plt cha=hp['character'] dic={} for row in cha.values:if row[0] =='id':passelse:dic[row[0]] = row[1] re = hp['relation'] rela=[] for row in re.values:if row[0]=='source':passelse:rela.append((dic[row[0]],dic[row[1]])) plt.figure(figsize=(30,20)) G=nx.Graph() G.add_edges_from(rela) nx.draw_networkx(G) plt.savefig("ht.png")

數(shù)據(jù)資源:

基于HarryPotter的數(shù)據(jù)可視化,數(shù)據(jù)資源-Python文檔類資源-CSDN下載

總結(jié)

以上是生活随笔為你收集整理的基于Harry Potter的数据可视化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美性色a | 黄色的网站在线观看 | 天天躁日日躁狠狠躁av麻豆 | 性生活视频网站 | 久热这里只有精品6 | 亚洲av无码成人精品区 | 国产人免费人成免费视频 | 中文字幕欧美人妻精品 | 免费日韩一区二区 | 99久精品| 在线观看午夜视频 | 色哟哟免费在线观看 | 成人音影 | 国产精品久草 | 国产一区二区三区亚洲 | 久久久久综合 | 中字幕视频在线永久在线观看免费 | 日韩激情第一页 | 岳狂躁岳丰满少妇大叫 | 鲁丝一区二区三区 | 欧美在线看 | 亲子乱子伦xxxx | 一区二区三区在线观看av | 精品久久国产 | 国产a√| 婷婷国产一区二区三区 | 欧美视频一二三 | 美女扒开屁股让男人捅 | 国产一区不卡视频 | 911美女片黄在线观看游戏 | 日韩淫 | 成年人黄色片 | 日韩欧美国产一区二区在线观看 | 国产成人综合一区二区三区 | 久久综合久久网 | 午夜视频在线观看一区二区 | ass大乳尤物肉体pics | 日韩国产亚洲欧美 | 日韩三级麻豆 | 亚洲精品无码成人 | 啪啪网站大全 | 国产精品入口久久 | 91手机在线观看 | 狠狠躁夜夜躁人人爽视频 | 色屁屁一区二区 | 91美女在线观看 | 欧美国产成人在线 | 午夜快播| 国产乡下妇女做爰毛片 | 91本色 | 国产成人亚洲综合a∨婷婷 台湾a级片 | 强开小受嫩苞第一次免费视频 | 在线免费看黄色 | 亚洲综合不卡 | 久久国产美女视频 | 男操女视频网站 | 青娱乐毛片 | 成人免费看aa片 | 操日本女人 | 亚洲国产97 | 三级视频在线 | 五月天在线 | 中文字幕亚洲一区 | 天天干天天插 | 中文字幕手机在线视频 | 久久av无码精品人妻系列试探 | 美女扒开粉嫩尿口 | 乱日视频 | 999久久久国产精品 韩国精品一区二区 | 91精品国产综合久久香蕉922 | 日韩专区欧美专区 | 亚洲av毛片 | 成人黄色免费在线观看 | 青草久久久久 | 欧美日韩亚洲国产一区 | 又色又爽又黄18网站 | 91视频合集 | 美女扒开内裤让男人捅 | 黑色丝袜吻戏亲胸摸腿 | 色8久久| 黄色成人在线免费观看 | 99热欧美| 亚洲一区二区三区电影在线观看 | 好吊妞视频这里只有精品 | 大地资源中文第三页 | 天天天天干 | 毛片毛片毛片毛片毛片毛片毛片毛片 | www成人免费视频 | 91爱爱网| 91丝袜国产在线播放 | 波多野结衣中文字幕一区二区 | 强开乳罩摸双乳吃奶羞羞www | 成年人的免费视频 | 婷婷激情五月综合 | 国产v综合v亚洲欧美久久 | 成人午夜视频免费在线观看 | 伊人中文在线 | 美女久久久久久久 | 99中文字幕 |