数据可视化——不同年份上论文集合数据的可视化

    技术2022-07-11  125

    不同年份上论文集合数据的可视化

    不同年份上论文集的个数(柱状图)数据预处理数据可视化 不同年份上论文集的平均引用量、被引用量(柱状图)数据预处理数据可视化 不同年份上论文的引用量、被引用量(盒须图)数据预处理数据可视化 展示论文集合上的一些统计信息,比如,展示数据集中不同年份上论文集的个数,以及平均引用量、被引用量。

    不同年份上论文集的个数(柱状图)

    数据预处理

    读取years.txt,将年份对应的总论文数放入一个字典。

    # 读取years.txt,将年份对应的论文数放入一个字典 file_years = 'D:/大学资料/大三下/项目实训/code+data/ACM数据集/years.txt' fyears = open(file_years,'r') years_dic = { } for line in fyears: year = line.strip() if year in years_dic.keys() and year is not '': years_dic[year]+=1 elif year is not '': temp = {} temp[year] = 1 years_dic.update(temp) else: continue del years_dic['994'] print(years_dic) print(len(years_dic)) fyears.close()

    数据可视化

    # 数据可视化:不同年份的论文数量 from pyecharts.charts import Bar from pyecharts import options as opts # 构造x,y轴的数据 x_data = [] y_data = [] for k in sorted(years_dic): x_data.append(k) y_data.append(years_dic[k]) year_bar = Bar(init_opts=opts.InitOpts(width='1200px'))\ .add_xaxis(xaxis_data = x_data)\ .add_yaxis(series_name="论文数量",y_axis = y_data) year_bar.set_global_opts(title_opts=opts.TitleOpts(title='数据集中不同年份的论文数量'), visualmap_opts=opts.VisualMapOpts( is_show = True, type_ ='color', is_piecewise = True, pieces=[ {"min": 3000,"color":'#F01C06'}, {"min":2000, "max":2999,"color":'#F93F2B'}, {"min":1000,"max":1999,"color":'#FB8275'}, {"min":1000,"max":1999,"color":'#FAA62A'}, {"min":500,"max":999,"color":'#F4E362'}, {"min":100,"max":499,"color":'#45F172'}, {"min":50,"max":99,"color":'#7FC3F1'}, {"max":49,"color":'#C4E3F8'} ], orient = 'vertical' )) #year_bar.render_notebook()#显示图表

    可视化效果如下,从下图我们可以看出,ACM数据集中的论文大部分是2000年~2008年的。

    不同年份上论文集的平均引用量、被引用量(柱状图)

    数据预处理

    首先,获取每篇论文的引用量。

    # 数据预处理:获取每篇论文的引用量 olinkspath = 'D:/大学资料/大三下/项目实训/code+data/ACM数据集/outlinks.txt' ofile = open(olinkspath,'r') outnum = [] for line in ofile: lines = line.strip('\n').split() num = len(lines) outnum.append(num) print(outnum[:6]) ofile.close()

    然后,获取不同年份论文的总引用量。

    # 数据预处理:获取不同年份论文的总引用量 file_years = 'D:/大学资料/大三下/项目实训/code+data/ACM数据集/years.txt' fyears = open(file_years,'r') num_dic = { } # 论文索引 index = 0 for line in fyears: year = line.strip() if year in num_dic.keys() and year is not '': num_dic[year]+=outnum[index] elif year is not '': temp = {} temp[year] = outnum[index] num_dic.update(temp) else: index+=1 continue index +=1 del num_dic['994'] print(num_dic) print(len(num_dic)) fyears.close()

    最后,获取不同年份论文的平均引用量。并进行可视化看看效果。

    # 数据可视化:不同年份论文的平均引用量 from pyecharts.charts import Bar from pyecharts import options as opts # 构造x,y轴的数据 x_data1 = [] y_data1 = [] for k in sorted(avg_dic): x_data1.append(k) y_data1.append(avg_dic[k]) avg_bar = Bar(init_opts=opts.InitOpts(width='1200px'))\ .add_xaxis(xaxis_data = x_data1)\ .add_yaxis(series_name="论文数量",y_axis = y_data1) avg_bar.set_global_opts(title_opts=opts.TitleOpts(title='不同年份论文的平均引用量'), visualmap_opts=opts.VisualMapOpts( is_show = True, type_ ='color', is_piecewise = True, pieces=[ {"min": 5,"color":'#FE6E6E'}, {"min":4, "max":5,"color":'#F29CE6'}, {"min":3, "max":4,"color":'#FCEB88'}, {"min":2,"max":3,"color":'#A4FB81'}, {"max":2,"color":'#C4E3F8'} ], orient = 'vertical' ))

    数据可视化

    从下图我们可以看出,不同年份的论文集合他们的平均引用量集中在2~4。      被引用量的处理方法相同。   将平均引用量、被引用量结合在一起进行可视化:

    # 数据可视化:不同年份论文的平均引用量 from pyecharts.charts import Bar from pyecharts import options as opts # 构造x,y轴的数据 x_data2 = [] y_data2 = [] for k in sorted(inavg_dic): x_data2.append(k) y_data2.append(inavg_dic[k]) inavg_bar = Bar(init_opts=opts.InitOpts(width='1200px'))\ .add_xaxis(xaxis_data = x_data2)\ .add_yaxis(series_name="平均被引用量",y_axis = y_data2)\ .add_yaxis(series_name="平均引用量",y_axis = y_data1) inavg_bar.set_global_opts(title_opts=opts.TitleOpts(title='不同年份论文的平均被引用量与引用量'), datazoom_opts=opts.DataZoomOpts(is_show= True, orient="horizontal")) inavg_bar.render()#显示图表

    用户可以拖动下方的条块选择不同的年份范围,以查看详细信息。从下图我们可以看出,ACM数据集中论文的平均引用量普遍高于被引用量。      

    不同年份上论文的引用量、被引用量(盒须图)

    数据预处理

    # 数据预处理:获取每篇论文的引用量 olinkspath = 'D:/大学资料/大三下/项目实训/code+data/ACM数据集/outlinks.txt' ofile = open(olinkspath,'r') outnum = [] for line in ofile: lines = line.strip('\n').split() num = len(lines) outnum.append(num) print(outnum[:6]) ofile.close() # 数据预处理:获取不同年份的论文集合 file_years = 'D:/大学资料/大三下/项目实训/code+data/ACM数据集/years.txt' fyears = open(file_years,'r') paper_dic = { } # 论文索引 index = 0 for line in fyears: year = line.strip() if year in paper_dic.keys() and year is not '': paper_dic[year].append(outnum[index]) elif year is not '': temp = { } new_list = [] new_list.append(outnum[index]) temp[year] = new_list paper_dic.update(temp) else: index+=1 continue index +=1 del paper_dic['994'] print(paper_dic['1999'][:50]) fyears.close() # 构造x,y轴的数据 x_data = [] y_data = [] for k in sorted(paper_dic): x_data.append(k) y_data.append(paper_dic[k])

    数据可视化

    可视化效果如下图。   用户可以拖动下方的条块选择不同的年份范围,以查看详细信息。从图中我们可以看出不同年份论文最大引用量一般都很高,所以上面统计的平均数据可能受极端数据影响比较大。   被引用量同理。    上述内容详见:

    https://blog.csdn.net/WX1204/article/details/106818036

    Processed: 0.009, SQL: 9