pyecharts是一个用于生成Echarts图表的类库。Echarts是百度开源的一个数据可视化JS库,主要用于数据可视化。实际是Echarts与Python的对接,使用pyecharts可以生成独立的网页。
pyechart可以做很多图表,毕业设计使用了三种简单的图表:折线图、饼状图、词云图。
pyecharts可以使用pip install pyecharts
直接下载。
pyecharts官方文档地址:http://pyecharts.org/#/zh-cn/quickstart
这是一张关于电视剧评分的折线图。横坐标是电视剧评分,纵坐标是电视剧的数量。
需要导入的库有两个:
import pyecharts.options as opts from pyecharts.charts import Line
第一个库生成图表的名字,第二个库选择使用的图表类型。
表里的数据就是前边使用爬虫爬下来的数据,所以连接数据库获取数据,这里直接略过。
# 横纵坐标的处理 xli = [] yli = [0]*100 for i in arange(1, 101): xli.append(str(float(i)/10)) for j in ret: yli[int(float(j[0])*10)] += 1 # 插入横纵坐标,同时设置图名,最后渲染生成一个HTML文件 l = ( Line() .add_xaxis(xli) # x轴坐标点必须是string类型 .add_yaxis("电视剧部数", yli, is_smooth=True) .set_global_opts(title_opts=opts.TitleOpts(title="电视剧评分分布图")) .render('rateLine.html') )
这段代码最后生成一个HTML文件,在HTML文件中有一些动画,可以更好的观察数据。也可以生成图片,但是要下载额外的库。
对于这个毕业设计,可以使用饼状图分析电视剧的类型和电视剧的拍摄国家或地区。
# 数据处理 data = [] for i in ret: data.append(i[0].split('/')[0]) newdata = [] num_count = Counter(data) for item in num_count: newdata.append([item, num_count[item]]) def Pie1(): pie = ( Pie() .add("", newdata) .set_global_opts(title_opts=opts.TitleOpts(title="Pie-国家或地区"),legend_opts=opts.LegendOpts(pos_left=160)) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))) return pie Pie1().render('c_or_rPie.html')
饼状图需要将一个[(key1, value1), (key1, value1),…]类型的数据传入饼状图。这里使用一个Counter计数器,之后在将数据放到一个数组中,其他没有跟折线图都没有太大的差别。
两个饼状图代码几乎一样,只需要变动数据库的查询语句,一个为select c_or_r
另一个为selete tv_type
。
词云图接受一段文本,自动按空格划分出字或词。然后按词的出现频率设置不同的字体。
data = [] for i in ret: data.append(i[0].replace('/', ' ')) text = ' '.join(data) # print(text) wc = WordCloud(font_path='simsun.ttc', collocations=False, width=800, height=600, mode='RGBA', background_color=None).generate(text) # 显示词云 plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() # 保存到文件 wc.to_file('C:\\Users\\1\\Desktop\\wcType.png') # 生成图像是透明的 print("已生成词云图")
先使用select语句查询数据库,对每一条数据,用空格替换”/“字符,同时再将所有的数据都添加到一个字符串中,每两条数据之间使用空格隔开。将得到的字符串传给词云图。词云图可以直接生成图片格式。
虽然最后结果很丑,但可以用emmmm。
这次毕业设计大概就做了这么些东西,工作量确实不是很多,被收拾了。。。应该是没有后续了,代码地址:https://github.com/Bzsheng/bishe
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句