69堂国产成人免费视频_亚洲成人999_最新日韩中文字幕_97在线视频免费_91久久国产精品_欧美美女一区二区_亚洲a级在线观看_亚洲最大成人免费视频_av中文字幕不卡_一本色道久久综合亚洲精品按摩

更多精彩內(nèi)容,歡迎關(guān)注:

視頻號(hào)
視頻號(hào)

抖音
抖音

快手
快手

微博
微博

Python實(shí)現(xiàn)城市公交網(wǎng)絡(luò)分析與可視化

導(dǎo)讀這篇文章主要介紹了通過(guò)Python爬取城市公交站點(diǎn)、線路及其經(jīng)緯度數(shù)據(jù),并做可視化數(shù)據(jù)分析。文中的示例代碼講解詳細(xì),感興趣的可以學(xué)習(xí)一下。
一、數(shù)據(jù)查看和預(yù)處理

數(shù)據(jù)獲取自高德地圖API,包含了天津市公交線路和站點(diǎn)名稱及其經(jīng)緯度數(shù)據(jù)。

import?pandas?as?pd

df?=?pd.read_excel('site_information.xlsx')
df.head()

字段說(shuō)明:

線路名稱:公交線路的名稱

上下行:0表示上行;1表示下行

站序號(hào):公交線路上行或下行依次經(jīng)過(guò)站的序號(hào)

站名稱:站點(diǎn)名稱

經(jīng)度(分):站點(diǎn)的經(jīng)度

緯度(分):站點(diǎn)的緯度

數(shù)據(jù)字段少,結(jié)構(gòu)也比較簡(jiǎn)單,下面來(lái)充分了解我們的數(shù)據(jù)和進(jìn)行預(yù)處理。

總的數(shù)據(jù)有 30396 條,站名稱缺失了 5 條,緯度(分)缺失了 1 條,經(jīng)度(分)缺失了 38 條,為了處理方便,直接把有缺失值的行刪除。

經(jīng)緯度數(shù)據(jù)是7031.982、2348.1016這樣的,需要將其轉(zhuǎn)換為以度為單位。

df2?=?df1.copy()
df2['經(jīng)度(分)']?=?df1['經(jīng)度(分)'].apply(float)?/?60
df2['緯度(分)']?=?df1['緯度(分)'].apply(float)?/?60
df2.head()

處理后的數(shù)據(jù)里,共有 618 條公交線路,4851個(gè)站點(diǎn)數(shù)據(jù)。

重新保存為處理后數(shù)據(jù)

df2.to_excel("處理后數(shù)據(jù).xlsx",?index=False)
二、數(shù)據(jù)分析

分析天津市公交站點(diǎn)的分布情況

#?-*-?coding:?UTF-8?-*-
"""
import?pandas?as?pd
import?matplotlib.pyplot?as?plt
import?matplotlib?as?mpl
import?random

df?=?pd.read_excel("處理后數(shù)據(jù).xlsx")
x_data?=?df['經(jīng)度(分)']
y_data?=?df['緯度(分)']
colors?=?['#FF0000',?'#0000CD',?'#00BFFF',?'#008000',?'#FF1493',?'#FFD700',?'#FF4500',?'#00FA9A',?'#191970',?'#9932CC']
colors?=?[random.choice(colors)?for?i?in?range(len(x_data))]
mpl.rcParams['font.family']?=?'SimHei'
plt.style.use('ggplot')
#?設(shè)置大小
plt.figure(figsize=(12,?6),?dpi=200)
#?繪制散點(diǎn)圖??經(jīng)度??緯度??傳進(jìn)去???設(shè)置?顏色??點(diǎn)的大小
plt.scatter(x_data,?y_data,?marker="o",?s=9.,?c=colors)

#?添加描述信息?x軸?y軸?標(biāo)題
plt.xlabel("經(jīng)度")
plt.ylabel("緯度")
plt.title("天津市公交站點(diǎn)分布情況")
plt.savefig('經(jīng)緯度散點(diǎn)圖.png')
plt.show()

結(jié)果如下:

通過(guò) matplotlib 繪制散點(diǎn)圖可視化天津市公交站點(diǎn)的分布情況,容易看出天津市的公交熱點(diǎn)分布區(qū)域。為了能更形象地分析公交線路網(wǎng)絡(luò),我們可以將數(shù)據(jù)可視化在實(shí)際地圖上,利用 Pyecharts 的BMap。

#?-*-?coding:?UTF-8?-*-
"""
import?pandas?as?pd
from?pyecharts.charts?import?BMap
from?pyecharts?import?options?as?opts
from?pyecharts.globals?import?CurrentConfig

#?引用本地js資源渲染
CurrentConfig.ONLINE_HOST?=?'D:/python/pyecharts-assets-master/assets/'

df?=?pd.read_excel('處理后數(shù)據(jù).xlsx',?encoding='utf-8')
df.drop_duplicates(subset='站名稱',?inplace=True)
longitude?=?list(df['經(jīng)度(分)'])
latitude?=?list(df['緯度(分)'])
datas?=?[]
a?=?[]
for?i,?j?in?zip(longitude,?latitude):
????a.append([i,?j])

datas.append(a)
print(datas)

BAIDU_MAP_AK?=?"改成你的百度地圖AK"

c?=?(
????BMap(init_opts=opts.InitOpts(width="1200px",?height="800px"))
????.add_schema(
????????baidu_ak=BAIDU_MAP_AK,?????#?申請(qǐng)的BAIDU_MAP_AK
????????center=[117.20,?39.13],????#?天津市經(jīng)緯度中心
????????zoom=10,
????????is_roam=True,
????)
????.add(
????????"",
????????type_="lines",
????????is_polyline=True,
????????data_pair=datas,
????????linestyle_opts=opts.LineStyleOpts(opacity=0.2,?width=0.5,?color='red'),
????????#?如果不是最新版本的話可以注釋下面的參數(shù)(效果差距不大)
????????progressive=200,
????????progressive_threshold=500,
????)
)

c.render('公交網(wǎng)絡(luò)地圖.html')

結(jié)果如下:

在地圖上可以看到,和平區(qū)、南開(kāi)區(qū)公交線路網(wǎng)絡(luò)密集,交通便利。

公交線路網(wǎng)絡(luò)中 i 節(jié)點(diǎn)代表第 i 條線路,其中節(jié)點(diǎn) i 的度定義為與線路 i 可以經(jīng)過(guò)換乘能夠到達(dá)的線路的數(shù)目,線路網(wǎng)絡(luò)的度大小反映了該條公交線路與其他線路的連通程度,構(gòu)建算法分析公交線路網(wǎng)絡(luò)度的分布。

#?-*-?coding:?UTF-8?-*-
"""
import?xlrd
import?matplotlib.pyplot?as?plt
import?pandas?as?pd
import?matplotlib?as?mpl


df?=?pd.read_excel("site_information.xlsx")
#?用pandas的操作去重???得到每條線路的名稱
loc?=?df['線路名稱'].unique()
#?得到每一條線路名稱的列表
line_list?=?list(loc)
print(line_list)

#?打開(kāi)Excel表格
data?=?xlrd.open_workbook("site_information.xlsx")
#?print(data)???#??在內(nèi)存中
#?獲取特定Sheet??索引為0??也就是第一個(gè)表
table?=?data.sheets()[0]??#?從零開(kāi)始
#?每條線路對(duì)應(yīng)有哪些站點(diǎn)??字典推導(dǎo)式
site_dic?=?{k:?[]?for?k?in?line_list}
site_list?=?[]
for?i?in?range(1,?table.nrows):
????#?每一行的數(shù)據(jù)???返回的是一個(gè)列表
????x?=?table.row_values(i)
????if?x[1]?==?"0":
????????#?上行???站點(diǎn)數(shù)據(jù)??每條線路對(duì)應(yīng)有哪些站點(diǎn)?添加進(jìn)列表
????????site_dic[x[0]].append(x[3])
????????site_list.append(x[3])
????else:
????????continue
#?print(len(site_dic))???#?618條線路
#?print(len(site_list))??#?15248條站點(diǎn)數(shù)據(jù)
print(f"公交網(wǎng)絡(luò)共有?{len(line_list)}?條線路")???#?618條線路

#?先初始化一個(gè)統(tǒng)計(jì)每個(gè)節(jié)點(diǎn)的度的列表??與線路名稱列表里的索引一一對(duì)應(yīng)
node_count?=?[m?*?0?for?m?in?range(len(line_list))]
#?以每條線路為一個(gè)節(jié)點(diǎn)??線路名稱為鍵??????值為一個(gè)列表??里面包含每條路線上行經(jīng)過(guò)的所有站點(diǎn)
sites?=?[site?for?site?in?site_dic.values()]
#?print(sites)
for?j?in?range(len(sites)):??#?類似冒泡法排序??比較多少趟
????for?k?in?range(j,?len(sites)?-?1):??#?每趟比較后??往后推一個(gè)??直到比較完??和防止越界
????????if?len(sites[j])?>?len(sites[k?+?1]):
????????????for?x?in?sites[j]:
????????????????if?x?in?sites[j]?and?x?in?sites[k?+?1]:???#?只要這兩條線路有公共站點(diǎn)??節(jié)點(diǎn)度數(shù)加1
????????????????????node_count[j],?node_count[k?+?1]?=?node_count[j]?+?1,?node_count[k?+?1]?+?1
????????????????????break???#?兩條線路對(duì)應(yīng)在列表索引的值加1???這兩條線的比較結(jié)束
????????else:
????????????for?x?in?sites[k?+?1]:
????????????????if?x?in?sites[j]?and?x?in?sites[k?+?1]:???#?只要這兩條線路有公共站點(diǎn)??節(jié)點(diǎn)度數(shù)加1
????????????????????node_count[j],?node_count[k?+?1]?=?node_count[j]?+?1,?node_count[k?+?1]?+?1
????????????????????break???#?兩條線路對(duì)應(yīng)在列表索引的值加1???這兩條線的比較結(jié)束
#?print(node_count)
#?節(jié)點(diǎn)編號(hào)?與?節(jié)點(diǎn)的度數(shù)索引對(duì)應(yīng)
node_number?=?[y?for?y?in?range(len(node_count))]
#?線性網(wǎng)絡(luò)度的最大值???175
print(f"線路網(wǎng)絡(luò)的度的最大值為:{max(node_count)}")
print(f"線路網(wǎng)絡(luò)的度的最小值為:{min(node_count)}")
print(f"線路網(wǎng)絡(luò)的度的平均值為:{sum(node_count)?/?len(node_count)}")
#?設(shè)置大小??圖的像素
#?設(shè)置字體???matplotlib?不支持顯示中文??自己本地設(shè)置
plt.figure(figsize=(10,?6),?dpi=150)
mpl.rcParams['font.family']?=?'SimHei'

#?繪制每個(gè)節(jié)點(diǎn)度的分布
plt.bar(node_number,?node_count,?color="purple")

#?添加描述信息
plt.xlabel("節(jié)點(diǎn)編號(hào)n")
plt.ylabel("節(jié)點(diǎn)的度數(shù)K")
plt.title("線路網(wǎng)絡(luò)中各節(jié)點(diǎn)的度的大小分布",?fontsize=15)
plt.savefig("線路網(wǎng)絡(luò)中各節(jié)點(diǎn)的度的大小.png")
plt.show()

結(jié)果如下:

公交網(wǎng)絡(luò)共有 618 條線路

線路網(wǎng)絡(luò)的度的最大值為:175

線路網(wǎng)絡(luò)的度的最小值為:0

線路網(wǎng)絡(luò)的度的平均值為:55.41423948220065

import?xlrd
import?matplotlib.pyplot?as?plt
import?pandas?as?pd
import?matplotlib?as?mpl
import?collections

df?=?pd.read_excel("site_information.xlsx")
#?用pandas的操作去重???得到每條線路的名稱
loc?=?df['線路名稱'].unique()
#?得到每一條線路名稱的列表
line_list?=?list(loc)
print(line_list)

#?打開(kāi)Excel表格
data?=?xlrd.open_workbook("site_information.xlsx")
#?print(data)???#??在內(nèi)存中
#?獲取特定Sheet??索引為0??也就是第一個(gè)表
table?=?data.sheets()[0]??#?從零開(kāi)始
#?每條線路對(duì)應(yīng)有哪些站點(diǎn)??字典推導(dǎo)式
site_dic?=?{k:?[]?for?k?in?line_list}
site_list?=?[]
for?i?in?range(1,?table.nrows):
????#?每一行的數(shù)據(jù)???返回的是一個(gè)列表
????x?=?table.row_values(i)
????if?x[1]?==?"0":
????????#?上行???站點(diǎn)數(shù)據(jù)??每條線路對(duì)應(yīng)有哪些站點(diǎn)?添加進(jìn)列表
????????site_dic[x[0]].append(x[3])
????????site_list.append(x[3])
????else:
????????continue
#?print(len(site_dic))???#?618條線路
#?print(len(site_list))??#?15248條站點(diǎn)數(shù)據(jù)
#?先初始化一個(gè)統(tǒng)計(jì)每個(gè)節(jié)點(diǎn)的度的列表??與線路名稱列表里的索引一一對(duì)應(yīng)
node_count?=?[m?*?0?for?m?in?range(len(line_list))]
#?以每條線路為一個(gè)節(jié)點(diǎn)??線路名稱為鍵??????值為一個(gè)列表??里面包含每條路線上行經(jīng)過(guò)的所有站點(diǎn)
sites?=?[site?for?site?in?site_dic.values()]
#?print(sites)
for?j?in?range(len(sites)):??#?類似冒泡法排序??比較多少趟
????for?k?in?range(j,?len(sites)?-?1):??#?每趟比較后??往后推一個(gè)??直到比較完??和防止越界
????????if?len(sites[j])?>?len(sites[k?+?1]):
????????????for?x?in?sites[j]:
????????????????if?x?in?sites[j]?and?x?in?sites[k?+?1]:???#?只要這兩條線路有公共站點(diǎn)??節(jié)點(diǎn)度數(shù)加1
????????????????????node_count[j],?node_count[k?+?1]?=?node_count[j]?+?1,?node_count[k?+?1]?+?1
????????????????????break???#?兩條線路對(duì)應(yīng)在列表索引的值加1???這兩條線的比較結(jié)束
????????else:
????????????for?x?in?sites[k?+?1]:
????????????????if?x?in?sites[j]?and?x?in?sites[k?+?1]:???#?只要這兩條線路有公共站點(diǎn)??節(jié)點(diǎn)度數(shù)加1
????????????????????node_count[j],?node_count[k?+?1]?=?node_count[j]?+?1,?node_count[k?+?1]?+?1
????????????????????break???#?兩條線路對(duì)應(yīng)在列表索引的值加1???這兩條線的比較結(jié)束
#?print(node_count)
#?節(jié)點(diǎn)編號(hào)?與?節(jié)點(diǎn)的度數(shù)索引對(duì)應(yīng)
node_number?=?[y?for?y?in?range(len(node_count))]
#?線性網(wǎng)絡(luò)度的最大值???175
#?print(max(node_count))

#?設(shè)置大小??圖的像素
#?設(shè)置字體???matplotlib?不支持顯示中文??自己本地設(shè)置
plt.figure(figsize=(10,?6),?dpi=150)
mpl.rcParams['font.family']?=?'SimHei'

#?分析節(jié)點(diǎn)的度K的概率分布
#?統(tǒng)計(jì)節(jié)點(diǎn)的度為K的?分別有多少個(gè)
node_count?=?collections.Counter(node_count)
node_count?=?node_count.most_common()
#?點(diǎn)
node_dic?=?{_k:?_v?for?_k,?_v?in?node_count}
#?按鍵從小到大排序???得到一個(gè)列表??節(jié)點(diǎn)的度
sort_node?=?sorted(node_dic)
#?按順序得到鍵對(duì)應(yīng)的值???即有相同節(jié)點(diǎn)的度的個(gè)數(shù)
sort_num?=?[node_dic[q]?for?q?in?sort_node]
#?概率分布中度平均值??總的度數(shù)加起來(lái)??/?個(gè)數(shù)
#?print(sum(sort_node)/len(sort_node))
#?概率分布中最大的度值???也就個(gè)數(shù)最多那個(gè)
print(f"概率分布中概率最大的度值為:{max(sort_num)}")

probability?=?[s1?/?sum(sort_num)?for?s1?in?sort_num]???#?概率分布
print(probability)

#?天津市公交線路節(jié)點(diǎn)概率分布圖像
plt.bar(sort_node,?probability,?color="red")
#?添加描述信息
plt.xlabel("節(jié)點(diǎn)的度K")
plt.ylabel("節(jié)點(diǎn)度為K的概率P(K)")
plt.title("線路網(wǎng)絡(luò)中節(jié)點(diǎn)度的概率分布",?fontsize=15)

plt.savefig("線路網(wǎng)絡(luò)中節(jié)點(diǎn)度的概率分布.png")
plt.show()

結(jié)果如下:

概率分布中概率最大的度值為:16

天津市公交線路網(wǎng)絡(luò)的度分布如上圖所示,本文收集的天津市線路網(wǎng)絡(luò)共有 618 條線路組成,線路網(wǎng)絡(luò)的度的最大值為175。概率分布中概率最大的度值為16,度平均值為55.41,表明天津市公交網(wǎng)絡(luò)提供的換乘機(jī)會(huì)較多,使得可達(dá)性較高。其中概率較大的度值大多集中在 7~26 之間。使得節(jié)點(diǎn)強(qiáng)度分布相對(duì)來(lái)說(shuō)不夠均勻,造成天津市很多路段公交線路較少,少數(shù)路段經(jīng)過(guò)線路過(guò)于密集,造成資源的浪費(fèi)。

聚類系數(shù)是研究節(jié)點(diǎn)鄰居之間的連接緊密程度,因此不必考慮邊的方向。對(duì)于有向圖,將其當(dāng)成無(wú)向圖來(lái)處理。網(wǎng)絡(luò)聚類系數(shù)大,表明網(wǎng)絡(luò)中節(jié)點(diǎn)與其附近節(jié)點(diǎn)之間的連接緊密度程度高,即與實(shí)際站點(diǎn)之間的公交線路連接密集。計(jì)算得到天津公交復(fù)雜網(wǎng)絡(luò)的聚類系數(shù)為0.091,相對(duì)其他城市較低。

根據(jù)公式:

同規(guī)模的隨機(jī)網(wǎng)絡(luò)聚集系數(shù)約為0.00044,進(jìn)一步體現(xiàn)了網(wǎng)絡(luò)的小世界特性。

import?xlrd
import?matplotlib.pyplot?as?plt
import?pandas?as?pd
import?matplotlib?as?mpl


#?讀取數(shù)據(jù)
df?=?pd.read_excel("site_information.xlsx")
#?用pandas的操作去重???得到每條線路的名稱
loc?=?df['線路名稱'].drop_duplicates()
#?得到每一條線路名稱的列表??按照Excel表里以次下去的順序
line_list?=?list(loc)
#?print(line_list)

#?打開(kāi)Excel表格
data?=?xlrd.open_workbook("site_information.xlsx")
#?print(data)???#??在內(nèi)存中
#?獲取特定Sheet??索引為0??也就是第一個(gè)表
table?=?data.sheets()[0]??#?從零開(kāi)始
#?每條線路對(duì)應(yīng)有哪些站點(diǎn)??字典推導(dǎo)式
site_dic?=?{k:?[]?for?k?in?line_list}
site_list?=?[]
for?i?in?range(1,?table.nrows):
????#?每一行的數(shù)據(jù)???返回的是一個(gè)列表
????x?=?table.row_values(i)
????if?x[1]?==?"0":
????????#?只取上行站點(diǎn)數(shù)據(jù)??每條線路對(duì)應(yīng)有哪些站點(diǎn)?添加進(jìn)列表
????????site_dic[x[0]].append(x[3])
????????site_list.append(x[3])
????else:
????????continue
#?print(len(site_dic))???#?618條線路
#?print(len(site_list))??#?15248條站點(diǎn)數(shù)據(jù)
#?先初始化一個(gè)統(tǒng)計(jì)每個(gè)節(jié)點(diǎn)的度的列表??與線路名稱列表里的索引一一對(duì)應(yīng)
node_count?=?[m?*?0?for?m?in?range(len(line_list))]
#?以每條線路為一個(gè)節(jié)點(diǎn)??線路名稱為鍵??????值為一個(gè)列表??里面包含每條路線上行經(jīng)過(guò)的所有站點(diǎn)
sites?=?[site?for?site?in?site_dic.values()]
#?print(sites)
#?統(tǒng)計(jì)各節(jié)點(diǎn)的度
for?j?in?range(len(sites)?-?1):??#?類似冒泡法排序??比較多少趟
????for?k?in?range(j,?len(sites)?-?1):??#?每趟比較后??往后推一個(gè)??直到比較完??和防止越界
????????if?len(sites[j])?>?len(sites[k?+?1]):
????????????for?x?in?sites[j]:
????????????????if?x?in?sites[j]?and?x?in?sites[k?+?1]:???#?只要這兩條線路有公共站點(diǎn)??節(jié)點(diǎn)度數(shù)加1
????????????????????node_count[j],?node_count[k?+?1]?=?node_count[j]?+?1,?node_count[k?+?1]?+?1
????????????????????break???#?兩條線路對(duì)應(yīng)在列表索引的值加1???這兩條線的比較結(jié)束
????????else:
????????????for?x?in?sites[k?+?1]:
????????????????if?x?in?sites[j]?and?x?in?sites[k?+?1]:???#?只要這兩條線路有公共站點(diǎn)??節(jié)點(diǎn)度數(shù)加1
????????????????????node_count[j],?node_count[k?+?1]?=?node_count[j]?+?1,?node_count[k?+?1]?+?1
????????????????????break???#?兩條線路對(duì)應(yīng)在列表索引的值加1???這兩條線的比較結(jié)束

#?找到該節(jié)點(diǎn)的鄰居節(jié)點(diǎn)??鄰居節(jié)點(diǎn)間實(shí)際的邊數(shù)
Ei?=?[]
#?對(duì)每條線路進(jìn)行找鄰接節(jié)點(diǎn)??并統(tǒng)計(jì)其鄰接節(jié)點(diǎn)點(diǎn)實(shí)際的邊數(shù)
for?a?in?range(len(sites)):
????neighbor?=?[]
????if?node_count[a]?==?0:
????????Ei.append(0)
????????continue
????if?node_count[a]?==?1:
????????Ei.append(0)
????????continue
????for?b?in?range(len(sites)):
????????if?a?==?b:????#?自身??不比
????????????continue
????????if?len(sites[a])?>?len(sites[b]):???#?從站點(diǎn)多的線路里選取站點(diǎn)???看是否有公共站點(diǎn)
????????????for?x?in?sites[a]:
????????????????if?x?in?sites[a]?and?x?in?sites[b]:??#?找到鄰居節(jié)點(diǎn)
????????????????????neighbor.append(sites[b])
????????????????????break
????????else:
????????????for?x?in?sites[b]:
????????????????if?x?in?sites[a]?and?x?in?sites[b]:??#?找到鄰居節(jié)點(diǎn)
????????????????????neighbor.append(sites[b])
????????????????????break
????#?在鄰居節(jié)點(diǎn)中判斷這些節(jié)點(diǎn)的實(shí)際邊數(shù)??又類似前面的方法??判斷兩兩是否相連
????count?=?0
????for?c?in?range(len(neighbor)?-?1):
????????for?d?in?range(c,?len(neighbor)?-?1):??#?每趟比較后??往后推一個(gè)??直到比較完??和防止越界
????????????try:
????????????????if?len(sites[c])?>?len(sites[d?+?1]):
????????????????????for?y?in?sites[c]:
????????????????????????if?y?in?sites[c]?and?y?in?sites[d?+?1]:??#?鄰居節(jié)點(diǎn)這兩個(gè)也相連
????????????????????????????count?+=?1
????????????????????????????break
????????????????????????else:
????????????????????????????continue
????????????????else:
????????????????????for?y?in?sites[d?+?1]:
????????????????????????if?y?in?sites[c]?and?y?in?sites[d?+?1]:??#?鄰居節(jié)點(diǎn)這兩個(gè)也相連
????????????????????????????count?+=?1
????????????????????????????break
????????????????????????else:
????????????????????????????continue
????????????except?IndexError:
????????????????break
????Ei.append(count)

#?每個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)間實(shí)際相連的邊數(shù)
#?print(Ei)
#?節(jié)點(diǎn)編號(hào)?與?節(jié)點(diǎn)的度數(shù)索引對(duì)應(yīng)
node_number?=?[y?for?y?in?range(len(node_count))]

#?設(shè)置字體???matplotlib?不支持顯示中文??自己本地設(shè)置
mpl.rcParams['font.family']?=?'SimHei'
#?設(shè)置大小??圖的像素
plt.figure(figsize=(10,?6),?dpi=150)
#?公交線路網(wǎng)絡(luò)的聚類系數(shù)分布圖像???相鄰節(jié)點(diǎn)的連通程度
Ci?=?[]
for?m?in?range(len(node_number)):
????if?node_count[m]?==?0:
????????Ci.append(0)
????elif?node_count[m]?==?1:
????????Ci.append(0)

????else:??#?2?*?該節(jié)點(diǎn)鄰居節(jié)點(diǎn)實(shí)際連接邊數(shù)?/?最大邊數(shù)
????????Ci.append(2?*?Ei[m]?/?(node_count[m]?*?(node_count[m]?-?1)))

#?各節(jié)點(diǎn)鄰居節(jié)點(diǎn)的連通程度?計(jì)算平均聚類系數(shù)
print("天津市公交線路網(wǎng)絡(luò)平均聚類系數(shù)為:{:.4f}".format(sum(Ci)?/?len(Ci)))
plt.bar(node_number,?Ci,?color="blue")

#?添加描述信息
plt.xlabel("節(jié)點(diǎn)編號(hào)n")
plt.ylabel("節(jié)點(diǎn)的聚類系數(shù)")
plt.title("線路網(wǎng)絡(luò)中各節(jié)點(diǎn)的聚類系數(shù)分布",?fontsize=15)

plt.savefig("聚類系數(shù)分布.png")
plt.show()

結(jié)果如下:

天津市公交線路網(wǎng)絡(luò)平均聚類系數(shù)為:0.0906

為你推薦
資訊專欄
熱門視頻
相關(guān)推薦
Python數(shù)據(jù)分析處理(三)--運(yùn)動(dòng)員信息的分組與聚合 基于Python實(shí)現(xiàn)PDF區(qū)域文本提取工具 詳解python的循環(huán) python實(shí)現(xiàn)新年倒計(jì)時(shí)實(shí)例代碼 Python實(shí)現(xiàn)消消樂(lè)小游戲 學(xué)習(xí)python的while循環(huán)嵌套 提升Python運(yùn)行速度的5個(gè)小技巧 Python按鍵或值對(duì)字典進(jìn)行排序 圖像檢索之基于vlfeat實(shí)現(xiàn)SIFT特征 python繪圖中的四個(gè)繪圖技巧 js中toString方法3個(gè)作用 信息系統(tǒng)項(xiàng)目管理師報(bào)考條件 信息系統(tǒng)項(xiàng)目管理師報(bào)考時(shí)間 信息系統(tǒng)項(xiàng)目管理師報(bào)名時(shí)間 信息系統(tǒng)項(xiàng)目管理師考試時(shí)間 pmp與信息系統(tǒng)項(xiàng)目管理師 信息系統(tǒng)項(xiàng)目管理師報(bào)考要求 信息系統(tǒng)項(xiàng)目管理師有效期 信息系統(tǒng)項(xiàng)目管理師考什么論文 信息系統(tǒng)項(xiàng)目管理師是什么類別 Python 垃圾回收機(jī)制詳解 python正則表達(dá)式語(yǔ)法學(xué)習(xí)筆記 一文秒懂python正則表達(dá)式常用函數(shù) Python常用的正則表達(dá)式處理函數(shù)詳解 JS截取字符串的三種方法詳解 PHP遍歷數(shù)組的6種方式總結(jié) php兩種基本的輸出方及實(shí)例詳解 php生成唯一uid的解決方法詳解 PHP7中對(duì)十六進(jìn)制字符串處理的問(wèn)題詳解 PHP對(duì)接抖音開(kāi)發(fā)平臺(tái)接口的詳細(xì)教程 php7安裝mysqli實(shí)例講解 php去掉一維數(shù)組的鍵值的實(shí)例方法 PHP中empty()和isset()的區(qū)別介紹 PHP實(shí)現(xiàn)JWT的Token登錄認(rèn)證 php判斷時(shí)間戳是否為今天實(shí)例講解 PHP7 preg_replace出錯(cuò)及解決辦法 五年班的學(xué)習(xí)計(jì)劃怎么寫 五年級(jí)的學(xué)習(xí)計(jì)劃 初中新學(xué)期學(xué)習(xí)計(jì)劃怎么寫 關(guān)于英語(yǔ)的學(xué)習(xí)計(jì)劃怎么寫 怎么寫暑假學(xué)習(xí)計(jì)劃書
Top 69堂国产成人免费视频_亚洲成人999_最新日韩中文字幕_97在线视频免费_91久久国产精品_欧美美女一区二区_亚洲a级在线观看_亚洲最大成人免费视频_av中文字幕不卡_一本色道久久综合亚洲精品按摩
一区二区不卡在线视频 午夜欧美不卡在| 日韩av网站在线观看| 成人少妇影院yyyy| 午夜欧美在线一二页| 伊人夜夜躁av伊人久久| 国产精品亲子伦对白| 国产欧美视频在线观看| 久久综合丝袜日本网| 精品国产免费人成在线观看| 7777精品伊人久久久大香线蕉的 | 蜜桃av噜噜一区二区三区小说| 亚洲人妖av一区二区| 国产精品久久久久影院亚瑟| 国产精品色哟哟网站| 精品国产一二三区| 久久亚洲私人国产精品va媚药| 日韩免费一区二区| 欧美大度的电影原声| 欧美韩国日本不卡| 久久久亚洲午夜电影| 337p粉嫩大胆色噜噜噜噜亚洲| 久久先锋影音av| 亚洲欧洲日本在线| 婷婷一区二区三区| 国产成人夜色高潮福利影视| av电影一区二区| 在线播放亚洲一区| 中文字幕乱码亚洲精品一区| 亚洲美女视频一区| 亚洲自拍偷拍麻豆| 国产自产2019最新不卡| 99精品热视频| 久久亚洲影视婷婷| 欧美极品xxx| 亚洲一区在线视频| 狠狠色丁香久久婷婷综合丁香| 国产福利一区二区| 777奇米成人网| 亚洲图片激情小说| 国产一区二区精品在线观看| 欧美性一区二区| 久久久美女毛片| 秋霞午夜鲁丝一区二区老狼| www.色精品| 国产aⅴ精品一区二区三区色成熟| 91啦中文在线观看| 国产网红主播福利一区二区| 国产欧美视频一区二区三区| 国产欧美日韩在线观看| 亚洲国产综合色| 成人精品视频一区二区三区| www.久久精品| 亚洲精品在线免费观看视频| 一区二区三区在线视频播放| 美女视频黄 久久| 国产美女在线精品| 欧美日本韩国一区二区三区视频| 国产精品美女一区二区三区| 精品中文av资源站在线观看| 色吧成人激情小说| 亚洲欧美在线高清| 成人黄色一级视频| 日本一区二区三级电影在线观看 | 久久尤物电影视频在线观看| 亚洲愉拍自拍另类高清精品| 国产高清不卡一区二区| 日韩一区二区三区在线视频| 亚洲一区视频在线| 欧美疯狂做受xxxx富婆| 亚洲午夜电影网| 色综合天天综合给合国产| 成人免费一区二区三区视频| www.亚洲在线| 最新国产成人在线观看| 高清视频一区二区| 久久久久9999亚洲精品| 国产精品456露脸| 国产偷国产偷亚洲高清人白洁 | av一区二区不卡| 成人欧美一区二区三区1314| 色一情一乱一乱一91av| 一级精品视频在线观看宜春院| 欧洲国产伦久久久久久久| 亚洲欧美在线aaa| 欧美视频在线一区二区三区 | 亚洲gay无套男同| 日韩一区二区在线观看视频播放| 久久电影网站中文字幕| 国产亚洲综合性久久久影院| av在线不卡电影| 亚洲成人动漫在线观看| 日韩午夜精品视频| 波多野洁衣一区| 美日韩一区二区三区| 久久午夜国产精品| 91精品久久久久久蜜臀| 一本色道亚洲精品aⅴ| 国产一区二区三区在线观看精品 | 欧美一区二区在线观看| 色综合久久66| 成人91在线观看| 国产一区二区导航在线播放| 日韩中文字幕1| 亚洲一区二区在线视频| 国产校园另类小说区| 欧美成人激情免费网| 欧美老年两性高潮| 在线一区二区观看| 一本久久综合亚洲鲁鲁五月天| 国产成人自拍高清视频在线免费播放| 日韩电影在线观看电影| 亚洲一卡二卡三卡四卡| 一区二区三区免费看视频| 亚洲三级在线免费观看| 欧美国产日韩亚洲一区| 2023国产一二三区日本精品2022| 日韩一二三区视频| 久久这里只有精品首页| 久久久久久久久免费| 26uuu另类欧美| 中文字幕精品三区| 日韩久久一区二区| 夜夜嗨av一区二区三区| 亚洲成a人片在线不卡一二三区| 一区二区三区高清| 免费亚洲电影在线| 国产精品1024| 日本韩国欧美国产| 51精品视频一区二区三区| 欧美电影免费观看高清完整版在线观看 | 夜夜亚洲天天久久| 日本麻豆一区二区三区视频| 另类调教123区| zzijzzij亚洲日本少妇熟睡| 色综合久久九月婷婷色综合| 在线播放国产精品二区一二区四区| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲欧美在线视频| 午夜伊人狠狠久久| 国产成人精品免费一区二区| 99麻豆久久久国产精品免费 | 欧美久久婷婷综合色| 久久久久青草大香线综合精品| 亚洲欧美怡红院| 久久不见久久见免费视频7 | 99久久国产综合精品色伊| 在线免费不卡视频| 国产精品私人自拍| 美腿丝袜亚洲三区| 欧美三级在线看| 国产精品网站在线观看| 日韩黄色片在线观看| 国产精品538一区二区在线| 欧美性受极品xxxx喷水| 日本一区二区久久| 久久97超碰色| 9191久久久久久久久久久| 国产免费观看久久| 经典三级视频一区| 欧美区一区二区三区| 亚洲欧美在线视频| 北条麻妃国产九九精品视频| 久久久久久久久久久黄色| 久久激情五月婷婷| 91精品国产一区二区人妖| 亚洲一区在线观看免费观看电影高清 | 男女男精品网站| 欧美一区二区三区啪啪| 亚洲国产色一区| 99国产精品国产精品毛片| 国产亚洲午夜高清国产拍精品| 久久精品久久99精品久久| 欧美高清激情brazzers| 亚洲精品你懂的| 欧美亚洲综合久久| 亚洲国产一区二区a毛片| 91国偷自产一区二区开放时间 | 日韩精品综合一本久道在线视频| 日本欧美肥老太交大片| 欧美精品高清视频| 日韩不卡手机在线v区| 欧美日韩国产另类一区| 婷婷国产在线综合| 91麻豆精品国产91久久久使用方法| 亚洲成人久久影院| 在线播放日韩导航| 激情伊人五月天久久综合| 久久久99精品免费观看不卡| 国产成人在线视频网址| 中文字幕日韩欧美一区二区三区| 91网站黄www| 亚洲高清免费在线| 精品久久久久久综合日本欧美| 国产精品中文字幕日韩精品| 国产精品久久久久一区二区三区 | 婷婷中文字幕综合| 精品久久国产97色综合| 成年人国产精品| 日韩成人一级大片| 日韩理论电影院|