城市公交网络

  • 城市公交网络分析与可视化
    • 数据爬取与处理
      • 公交站点信息爬取
      • 公交线路轨迹爬取
      • 坐标转换
    • 城市公交网络可视化
      • 利用ArcMap实现地图的可视化
      • 利用plotly实现地图可视化
    • 公交路线基本特征分析
      • 公交线路的平均长度
      • 公交线路的平均站点数
      • 公交线路的平均站距
      • 公交线路的平均直线系数
    • 公交换乘网络搭建
    • 公交换乘网络分析
      • 节点数和边数
      • 节点的邻居数(度)
      • 节点度的分布(直方图)
      • 网络的平均路径长度
    • 参考资料

合作者:guyueCT

城市公交网络分析与可视化

数据爬取与处理

公交站点信息爬取

第一步,从青岛市公交线路的百度百科(https://baike.baidu.com/item/%E9%9D%92%E5%B2%9B%E5%85%AC%E4%BA%A4/5016038?fr=aladdin)中爬取青岛市区的各路公交线路名称,整理成txt文档,用于后续爬取线路信息工作。

第二步,申请高德地图的开发者key,选择web端的服务。
高德key

利用所得到的key和一些公交线路信息构成url,提交给高德地图,并爬取返回的与路线相关的信息,关键代码如下:

url = 'https://restapi.amap.com/v3/bus/linename?s=rsv3&extensions=all&key=559bdffe35eec8c8f4dae959451d705c&output=json&city={}&offset=1&keywords={}&platform=JS'.format(city,line)
r = requests.get(url).text
rt = json.loads(r)#转换为字典

其中,city代表要查询的城市,line代表要查询的公交线路;我们以青岛市的321路公交线路为例,查看爬取的结果。

爬取的结果已经转换成了字典,其中一些对我们地图可视化分析有帮助的有公交线路的名称、各公交站点的名称与坐标、各公交线路的轨迹坐标以及公交线路中各站点的顺序。
第三步,将爬取得到的相关信息进行整理、汇总成表格形式,以便后续后续可视化及分析。

import requests
import pandas as pd
import json
import re
f = open("raw_stop.txt","r")   #文件内容为上述统计的站点名称
str = f.read()     #将txt文件的所有内容读入到字符串str中
f.close()   #将文件关闭
def get_dt(city,line):url = 'https://restapi.amap.com/v3/bus/linename?s=rsv3&extensions=all&key=559bdffe35eec8c8f4dae959451d705c&output=json&city={}&offset=1&keywords={}&platform=JS'.format(city,line)r = requests.get(url).textrt = json.loads(r)print(rt)try:if rt['buslines']:if len(rt['buslines']) == 0:  #有名称没数据print('no data in list..')else:dt = {}dt['line_name'] = rt['buslines'][0]['name'] dt['total_price'] = rt['buslines'][0]['total_price']st_name = []st_coords = []st_sequence = []for st in rt['buslines'][0]['busstops']:st_name.append(st['name'])st_coords.append(st['location'])st_sequence.append(st['sequence'])dt['station_name'] = st_namedt['station_coords'] = st_coordsdt['sequence'] = st_sequencedm = pd.DataFrame([dt])return dmelse:passexcept:print('error..try it again..')time.sleep(2)get_dt(city,line)
stations=re.split(',| |\n',str)
stations=list(filter(None,stations))
for sta in stations:if sta== '1路':data=get_dt('青岛',sta)else:dm=get_dt('青岛',sta)data=pd.concat([data,dm],ignore_index=True)
for i in range(data.shape[0]):coord_x=[]coord_y=[]for j in data['station_coords'][i]:coord_x.append(eval(re.split(',',j)[0]))coord_y.append(eval(re.split(',',j)[1]))a=[[data['line_name'][i]]*len(data['station_coords'][i]),coord_x,coord_y,data['station_name'][i],data['sequence'][i]]df=pd.DataFrame(a).Tif i==0:df1=dfelse:df1=pd.concat([df1,df],ignore_index=True)
df1.columns=['line_name','coord_x','coord_y','station_name','sequence']
df1.to_csv('bus_inf.csv',index=None,encoding='utf_8_sig')

公交线路轨迹爬取

与上面的方法一致,爬取得到的信息字典中,有’polyline’项,项中存储的为各公交线路的轨迹坐标,同理将这些信息进行整理。

import requests
import pandas as pd
import json
import re
f = open("raw_stop.txt","r")   #设置文件对象
str = f.read()     #将txt文件的所有内容读入到字符串str中
f.close()   #将文件关闭
def get_dt(city,line):url = 'https://restapi.amap.com/v3/bus/linename?s=rsv3&extensions=all&key=559bdffe35eec8c8f4dae959451d705c&output=json&city={}&offset=1&keywords={}&platform=JS'.format(city,line)r = requests.get(url).textrt = json.loads(r)try:if rt['buslines']:if len(rt['buslines']) == 0:  #有名称没数据print('no data in list..')else:dt = {}dt['line_name'] = rt['buslines'][0]['name'] dt['polyline'] = rt['buslines'][0]['polyline']dm = pd.DataFrame([dt])return dmelse:passexcept:print('error..try it again..')time.sleep(2)get_dt(city,line)
stations=re.split(',| |\n',str)
stations=list(filter(None,stations))
for sta in stations:if sta== '1路':data=get_dt('青岛',sta)else:dm=get_dt('青岛',sta)data=pd.concat([data,dm],ignore_index=True)
data.to_csv('bus_inf_trace.csv',index=None,encoding='utf_8_sig')

坐标转换

像谷歌地图等地图,使用的是wgs84坐标,实际坐标与地图坐标相同,而高德、腾讯地图等为了保障国家安全,在wgs84坐标的基础上对国内范围进行加密,称为火星坐标,百度地图为了商业目的,在火星坐标的基础上进行了二次加密。在这里,我们是通过高德地图采取的公交线路信息,因此需要对火星坐标进行转化,否则绘制的路线会发生偏移,出现公交线路跑到海边的问题。

# -*- coding: utf-8 -*-
import json
import math
import pandas as pdx_pi = 3.14159265358979324 * 3000.0 / 180.0
pi = 3.1415926535897932384626  # π
a = 6378245.0  # 长半轴
ee = 0.00669342162296594323  # 扁率def gcj02towgs84(lng, lat):"""GCJ02(火星坐标系)转GPS84:param lng:火星坐标系的经度:param lat:火星坐标系纬度:return:"""if out_of_china(lng, lat):return lng, latdlat = transformlat(lng - 105.0, lat - 35.0)dlng = transformlng(lng - 105.0, lat - 35.0)radlat = lat / 180.0 * pimagic = math.sin(radlat)magic = 1 - ee * magic * magicsqrtmagic = math.sqrt(magic)dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * pi)dlng = (dlng * 180.0) / (a / sqrtmagic * math.cos(radlat) * pi)mglat = lat + dlatmglng = lng + dlngreturn [lng * 2 - mglng, lat * 2 - mglat]def transformlat(lng, lat):ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + \0.1 * lng * lat + 0.2 * math.sqrt(math.fabs(lng))ret += (20.0 * math.sin(6.0 * lng * pi) + 20.0 *math.sin(2.0 * lng * pi)) * 2.0 / 3.0ret += (20.0 * math.sin(lat * pi) + 40.0 *math.sin(lat / 3.0 * pi)) * 2.0 / 3.0ret += (160.0 * math.sin(lat / 12.0 * pi) + 320 *math.sin(lat * pi / 30.0)) * 2.0 / 3.0return retdef transformlng(lng, lat):ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + \0.1 * lng * lat + 0.1 * math.sqrt(math.fabs(lng))ret += (20.0 * math.sin(6.0 * lng * pi) + 20.0 *math.sin(2.0 * lng * pi)) * 2.0 / 3.0ret += (20.0 * math.sin(lng * pi) + 40.0 *math.sin(lng / 3.0 * pi)) * 2.0 / 3.0ret += (150.0 * math.sin(lng / 12.0 * pi) + 300.0 *math.sin(lng / 30.0 * pi)) * 2.0 / 3.0return retdef out_of_china(lng, lat):"""判断是否在国内,不在国内不做偏移:param lng::param lat::return:"""if lng < 72.004 or lng > 137.8347:return Trueif lat < 0.8293 or lat > 55.8271:return Truereturn Falset_x=[]
t_y=[]
df=pd.read_csv('bus_inf.csv')
for i in range(len(list(df['coord_x']))):[X,Y]=gcj02towgs84(list(df['coord_x'])[i],list(df['coord_y'])[i])t_x.append(X)t_y.append(Y)
t_x=pd.DataFrame(t_x)
t_y=pd.DataFrame(t_y)
df['coord_x']=t_x
df['coord_y']=t_y
df.to_csv('bus_inf_wgs84.csv',index=None,encoding='utf_8_sig')

城市公交网络可视化

利用ArcMap实现地图的可视化

参考这篇文章
知乎-城市路网实时路况爬取与ArcGIS可视化

利用plotly实现地图可视化

# 导入库及数据
import requests
import time
import numpy as np
import math
import plotly.offline as py
import plotly.graph_objs as go
from plotly.offline import init_notebook_mode
import pandas as pd
import re
import jsonbus_inf_stations = pd.read_csv("bus_inf_wgs84.csv")
bus_inf_trace=pd.read_csv('bus_inf_trace.csv')
init_notebook_mode(connected=True) #如果使用jupyter需要加上这一句,把地图显示在页面上
# 绘制青岛公交轨迹 + 公交站点图
mapbox_access_token = ('pk.eyJ1IjoibHVrYXNtYXJ0aW5lbGxpIiwiYSI6ImNpem85dmhwazAy''ajIyd284dGxhN2VxYnYifQ.HQCmyhEXZUTz3S98FMrVAQ'
) # 此处的写法只是为了排版,结果为连接在一起的字符串
layout = go.Layout(autosize=True,mapbox=dict(accesstoken=mapbox_access_token,center=dict(lat=36.08997714, #青岛市北纬度lon=120.3899010 #青岛市北经度),pitch=0,zoom=11,),
)color = ('blue', 'green', 'yellow', 'purple', 'orange', 'red', 'violet', 'navy', 'crimson', 'cyan', 'magenta', 'maroon', 'peru','gray','brown','darkgray','deeppink','greenyellow','lemonchiffon','lightblue','limegreen','mediumaquamarine','mintcream','orangered','powderblue','seagreen','springgreen','tomato','steelblue','skyblue') #可按需增加
data = [] #绘制数据
marked = set()
cnt = 0
i=0
while(i<len(bus_inf_trace)): #遍历每一条线路#plots_name = [] #站台名称coord_lon=[]coord_lat=[]line_name=bus_inf_trace['line_name'][i]poly=re.split(';',bus_inf_trace['polyline'][i]) #当前线路的轨迹j=0while(j<len(poly)):#遍历所有轨迹点(lon,lat)=gcj02towgs84(eval(re.split(',',poly[j])[0]), eval(re.split(',',poly[j])[1]))coord_lon.append(lon)  #站台经度集coord_lat.append(lat)  #站台纬度集j=j+1data.append(go.Scattermapbox(lon=coord_lon, #站台经度lat=coord_lat, #站台纬度mode='lines',#markers:点模型,  lines:线模型,  'markers+lines':点-线模型name=line_name, #线路名称,显示在图例(legend)上text=plots_name, #各个点的名称,鼠标悬浮在点上时显示# 设置标记点的参数marker=go.scattermapbox.Marker(size=5, color=color[cnt])))#marked.add(uid) #添加已绘制线路的uid#marked.add(line['pair_line_uid']) #添加已绘制线路反向线路的uidcnt = (cnt + 1) % len(color)i=i+1while(i<len(bus_inf_stations)): # <8501plots_name = [] #站台名称coord_lon=[]coord_lat=[]line_name=bus_inf_stations['line_name'][i]while(line_name==bus_inf_stations['line_name'][i]):plots_name.append(bus_inf_stations['station_name'][i])coord_lon.append(bus_inf_stations['coord_x'][i])coord_lat.append(bus_inf_stations['coord_y'][i])if i==8500:breaki=i+1data.append(go.Scattermapbox(lon=coord_lon, #站台经度lat=coord_lat, #站台纬度mode='markers',#markers:点模型,  lines:线模型,  'markers+lines':点-线模型name=line_name, #线路名称,显示在图例(legend)上text=plots_name, #各个点的名称,鼠标悬浮在点上时显示# 设置标记点的参数marker=go.scattermapbox.Marker(size=5, color='black')))#marked.add(uid) #添加已绘制线路的uid#marked.add(line['pair_line_uid']) #添加已绘制线路反向线路的uidcnt = (cnt + 1) % len(color)i=i+1fig = dict(data=data, layout=layout)
#py.iplot(fig) #直接显示地图
py.plot(fig, filename='qd_bus.html') #生成html文件并打开

公交路线基本特征分析

公交线路的平均长度

在爬取的数据字典中,每条公交线路都含有键名为’ distance’的键值对,按照上面爬取公交线路的思路,爬取相关数据,得到各公交线路的长度,并计算线路平均长度。

经过计算,我们得到了线路的平均线路长度为
19.452331013986004km

公交线路的平均站点数

经过分析可以得出,要统计站点数只需要统计站点信息表格中相同’line_name’的行数就可以了。

经过计算,我们得到了线路的平均站点数大约为
30(30.42909090909091)

公交线路的平均站距

平均站距的计算,可以直接用平均路线长度除以平均站点数得到。
经过计算,可以得到了线路的平均站距大约为
0.6609898713513099km

公交线路的平均直线系数

根据公式:
直线系数=公交线路的长度/公交线路的直线长度

可以求出各路线的直线系数(排除环形路线),其中,公交线路的直线长度通过公交线路的起始和终点站的地理坐标来求解得到,再对这些直线系数求平均,能够得到公交线路的平均直线系数。


经过计算,我们得到了公交线路的平均直线系数为
2.306061353782556

#平均站点数
import pandas as pd
df=pd.read_csv('bus_inf_wgs84.csv')
dic1={}
line=df['line_name']
line=line.drop_duplicates()
for L in line:temp=df[df['line_name']==L]dic1[L]=temp.shape[0]
L = len(dic1)
S = sum(dic1.values())
A = S / L
#路线平均长度
import requests
import pandas as pd
import json
import re
f = open("raw_stop.txt","r")   #设置文件对象
str = f.read()     #将txt文件的所有内容读入到字符串str中
f.close()   #将文件关闭
def get_dt(city,line):url = 'https://restapi.amap.com/v3/bus/linename?s=rsv3&extensions=all&key=559bdffe35eec8c8f4dae959451d705c&output=json&city={}&offset=1&keywords={}&platform=JS'.format(city,line)r = requests.get(url).textrt = json.loads(r)try:if rt['buslines']:if len(rt['buslines']) == 0:  #有名称没数据print('no data in list..')else:dt = {}dt['line_name'] = rt['buslines'][0]['name'] dt['distance'] = eval(rt['buslines'][0]['distance'])dm = pd.DataFrame([dt])return dmelse:passexcept:print('error..try it again..')time.sleep(2)get_dt(city,line)
stations=re.split(',| |\n',str)
stations=list(filter(None,stations))
for sta in stations:if sta== '1路':data1=get_dt('青岛',sta)else:dm=get_dt('青岛',sta)data1=pd.concat([data1,dm],ignore_index=True)
B=sum(data1['distance'])/data1.shape[0]
#平均站距
C=B/(A-1)
C
#平均直线系数
def get_dt_l(city,line):url = 'https://restapi.amap.com/v3/bus/linename?s=rsv3&extensions=all&key=559bdffe35eec8c8f4dae959451d705c&output=json&city={}&offset=1&keywords={}&platform=JS'.format(city,line)r = requests.get(url).textrt = json.loads(r)try:if rt['buslines']:if len(rt['buslines']) == 0:  #有名称没数据print('no data in list..')else:if rt['buslines'][0]['start_stop'] != rt['buslines'][0]['end_stop']:dt={}dt['line_name'] = rt['buslines'][0]['name']dt['start_stop'] = rt['buslines'][0]['start_stop']dt['end_stop'] = rt['buslines'][0]['end_stop']for st in rt['buslines'][0]['busstops']:if st['name']==dt['start_stop']:dt['start_coord']=st['location']if st['name']==dt['end_stop']:dt['end_coord']=st['location']dm = pd.DataFrame([dt])return dmelse:passexcept:print('error..try it again..')time.sleep(2)get_dt_l(city,line)
stations=re.split(',| |\n',str)
stations=list(filter(None,stations))
for sta in stations:if sta== '1路':data2=get_dt_l('青岛',sta)else:dm=get_dt_l('青岛',sta)data2=pd.concat([data2,dm],ignore_index=True)
start_coord_x=[]
start_coord_y=[]
end_coord_x=[]
end_coord_y=[]
for i in range(data2.shape[0]):end_coord_x.append(eval(re.split(',',data2['end_coord'][i])[0]))start_coord_x.append(eval(re.split(',',data2['start_coord'][i])[0]))end_coord_y.append(eval(re.split(',',data2['end_coord'][i])[1]))start_coord_y.append(eval(re.split(',',data2['start_coord'][i])[1]))
a=[start_coord_x,start_coord_y,end_coord_x,end_coord_y]
df=pd.DataFrame(a).T
df.columns=['start_coord_x','start_coord_y','end_coord_x','end_coord_y']
D=pd.concat([data2,df],axis=1)
D=D.drop(['start_coord','end_coord'],axis=1)
D.to_csv('bus_inf_start_end.csv',index=None,encoding='utf_8_sig')from math import sin, asin, cos, radians, fabs, sqrt
EARTH_RADIUS = 6371  # 地球平均半径,6371km
def hav(theta):s = sin(theta / 2)return s * s
def get_distance_hav(lat0, lng0, lat1, lng1):"用haversine公式计算球面两点间的距离。"# 经纬度转换成弧度lat0 = radians(lat0)lat1 = radians(lat1)lng0 = radians(lng0)lng1 = radians(lng1)dlng = fabs(lng0 - lng1)dlat = fabs(lat0 - lat1)h = hav(dlat) + cos(lat0) * cos(lat1) * hav(dlng)distance = 2 * EARTH_RADIUS * asin(sqrt(h))return distance
dic2={}
for i in range(len(D)):dic2[D['line_name'][i]]=get_distance_hav(D['start_coord_y'][i],D['start_coord_x'][i],D['end_coord_y'][i],D['end_coord_x'][i])if dic2[D['line_name'][i]]<0.5:del dic2[D['line_name'][i]]dic3={}
for i in dic2.keys():dic3[i]=data1[data1['line_name']==i]['distance']/dic2[i]
for i in dic2.keys():dic3.values()   S=0
num=0
for i in dic2.keys():S=S+list(dic3[i])[0]num=num+1
N=S/num

公交换乘网络搭建

换乘网络的搭建需要确定各公交站点的距离矩阵,距离矩阵如下:

矩阵中值为1,表示横纵坐标的站点之间能够通过一条公交线路到达;值为0,表示无法通过一条公交线路到达,需要换乘。
根据换乘矩阵,搭建包含所有的站点的换乘网络如下:

由于站点数量过多,无法很好的显示,我们只取十条公交线路进行绘制换乘网络,结果如下:

import pandas as pd
import numpy as np
df=pd.read_csv('bus_inf_wgs84.csv')
line=df['line_name']
line=line.drop_duplicates()
network=np.zeros((line.shape[0],line.shape[0]))
network=pd.DataFrame(network,index=line)
network.columns=line
for i in range(len(list(line))):for j in range(i,len(list(line))):temp1=df[df['line_name']==list(line)[i]]temp2=df[df['line_name']==list(line)[j]]T1=set(list(temp1['station_name']))T2=set(list(temp2['station_name']))if T1&T2 != set():network[list(line)[i]][list(line)[j]]=network[list(line)[j]][list(line)[i]]=1.0
stage=[]
for i in list(line):for j in list(line):if network[j][i] == 1.0:stage.append((j,i))
import networkx as nx
import matplotlib.pyplot as plt
%matplotlib inline
#plt.figure(figsize=(8, 8.5))
G=nx.Graph()
G.add_nodes_from(list(line))
G.add_edges_from(stage)
nx.draw(G,with_labels=False,edge_color='b', node_color='g',node_size=100,font_family ='YouYuan',spring_layout=True,font_size=8)
plt.show()

公交换乘网络分析

节点数和边数

节点数为公交线路的长度为275,边数为距离矩阵中值‘1’的数量为10063。

节点的邻居数(度)

可以理解成为,距离矩阵每行或每列数值‘1’的个数,经过计算得到的结果为

节点度的分布(直方图)

网络的平均路径长度

给定一个网络G(n, e), n是节点数量,e是链接数量。对于网络中的任意一对节点source s和target t,我们可以计算它们之间的最短距离ds,t。将这些距离相加除以n(n−1),就可以得到网络的平均最短路径长度。再这里,我们直接利用networkx的函数average_shortest_path_length()来直接进行计算,得到结果为
2.1946303180503923

参考资料

  1. Plotly绘图库官网 https://plot.ly/
  2. 使用networkx计算平均最短路径长度
    https://computational-communication.com/average-shortest-path-length/
  3. python通过经纬度计算两点之间距离https://blog.csdn.net/zzmtkj/article/details/94591792
  4. python复杂网络结构可视化——matplotlib+network
    https://zhuanlan.zhihu.com/p/36700425

【大数据课程设计】城市公交网络分析与可视化(以青岛市为例)相关推荐

  1. 【大数据】城市公交网络分析与可视化(六):对比分析不同城市公交的“非直线系数”

    内容介绍 梗概:求一个城市的公交的平均(非)直线系数,并结合前面博客所求得的公交线路的平均长度.平均站点数.平均站距,对比分析几个城市的公交路线基本数据. 准备知识 1.什么是"非直线系数& ...

  2. 大数据课程设计(一)二手房数据挖掘可视化

    大数据课程设计(一)二手房数据挖掘可视化 selenium爬虫.pyecharts可视化.HTML+CSS+Echarts大屏.配套论文.配套教程视频. 项目要求: 项目包含: 该压缩包含视频讲解和项 ...

  3. 【大数据】城市公交网络分析与可视化(三):获取公交站点信息并可视化站点重要程度

    博客内容简介 通过前面的探究,我们大体知道如何获取一个城市的公交数据,并绘制了公交行驶路径散点图(效果不是很理想). 其实散点图感觉更适合类似于绘制公交站点这样的信息(行驶轨迹有其他更好的绘制技巧), ...

  4. 算法与数据结构课程设计城市公交管理系统(C、C++)

    城市公交管理系统 项目功能模块(需要源码请私信) 1.添加功能: [1]添加公交站,将站点信息写入stations.txt中: [2]添加交通路线,将路线信息写入bus.txt中: 2.删除功能: [ ...

  5. 【大数据】城市公交网络分析与可视化(五):获取公交平均路线长度、站点数、站距

    内容简介 也不前情提要了,本博客内容高度概括就是:通过直接遍历法和依据文本法获取一个城市的"所有"线路名,并计算这些线路的平均路线长度.平均站点数.平均站距("直线系数& ...

  6. 【大数据】城市公交网络分析与可视化(一):基于Python爬取公交车行驶路径等基本信息

    博客内容介绍 借助高德地图API,爬取指定公交线路(国内绝大多数线路,给定城市名和路线名即可)的始发站.终点站.行驶路径(行车轨迹).站点名称和坐标.行驶距离等与公交车有关的基本信息,并将其保存到Ex ...

  7. 大数据课程设计python_大数据Python编程设计

    本课程不局限某个专业和学历层次,需要一些程序设计的基本概念如计算机求解问题的框架和一些如素数判断这样的基本算法,缺少上述基础的同学不用太担心,在上课过程中根据课程自己进度补充相关知识并多多进行编程练习 ...

  8. Python 实践 | 城市公交网络分析与可视化

    文章目录 一.数据查看和预处理 二.数据分析 一.数据查看和预处理 数据获取自高德地图API,包含了天津市公交线路和站点名称及其经纬度数据. 本文的源码.数据和论文资料自助下载链接:https://m ...

  9. 年薪不过27w全额退款丨BAT百万讲师打磨出完美匹配企业需求的大数据课程

    经过12次课程迭代 课程紧跟企业需求,学员成功高薪入职 年薪低于27万全额退款! 年薪百万超一线企业大数据资深讲师(前腾讯.阿里.字节跳动等),成立八斗学院教研中心,雄厚的师资力量,强大的教研团队,经 ...

最新文章

  1. Java学习总结:26
  2. 循环神经网络 递归神经网络_如何用递归神经网络预测空气污染
  3. 在Apache的POI XWPFRun对象分隔文本行
  4. uni-app如何取消pages页面的默认返回按钮【autoBackButton属性】
  5. 2月19日2021CCF颁奖典礼即将举办,“为什么在横店?”
  6. monty python喜剧-经典喜剧电影推荐:巨蟒与圣杯
  7. java模式匹配_用Java匹配模式
  8. java语言中json转换,JSON字符串和JAVA语言对象的相互转换教程
  9. Java 异常 (Exception) 剖析 与 用户自定义异常
  10. 20200518 如何快速画出闭环特征方程的根轨迹
  11. Gstreamer/audioflingersink/APE: 使用palybin播放extrahigh,insane等级的ape音乐出现卡顿现象
  12. Python:计算任意n阶矩阵行列式
  13. java excel 插件开发工具_强力推荐!五款能让你成为Excel“高手”的Excel插件
  14. win10 excel和ppt变成英文了,word正常,怎么解决?
  15. 罗马神话缪斯_缪斯与边缘– Adob​​e Web Designer的工具
  16. mnist数据集在FATE上应用
  17. 数美科技风控前沿| AIGC需要什么内容风控基建?ChatGPT本“人”有话要说
  18. 数码相机的照片用计算机处理,作业数码相机的使用与维护
  19. 自动驾驶仿真:VTD调用罗技 G923方向盘(Linux环境)
  20. gitk安装(linux,window)

热门文章

  1. 简易CPU,模型机的制作
  2. 车载毫米波雷达天线罩设计问题
  3. AVS-CABAC算法原理简介2
  4. java初级能干什么_小黄鸭系列java基础知识 | java能干什么?
  5. 《敏捷估计与规划》读书笔记
  6. 李开复——人工智能领域的中坚力量
  7. 促进大数据发展,加强智慧城市建设-思迈特软件
  8. 《杀手 2*》:在现代 CPU 上增强混响效果
  9. 北邮信通导论第三单元数字温度计
  10. 关于sketchup模型导入revit编辑问题