Pyecharts数据可视化图表

Zss 发表于:

当获取到某一些数据之后,需要以图表的形式展现出来,于是发现了Pyecharts模块,很方便

生成的图表也很漂亮,如之前所爬取的猫眼电影的数据,其中有评分和城市,还有评论等数据,可以使用进行数据的过滤,排序来进行数据的可视化

安装方式:

pip install pyecharts

pip install echarts-china-provinces-pypkg

pip install echarts-china-cities-pypkg

pip install echarts-china-counties-pypkg

pip install echarts-china-misc-pypkg

pip install echarts-countries-pypkg

pip install echarts-united-kingdom-pypkg

这其中包含了一些地区的地图的经纬度的数据

图表的绘制过程:
步骤 描述 代码示例
1 实例一个具体类型图表的对象 chart = FooChart()
2 为图表添加通用的配置,如主题 chart.use_theme()
3 为图表添加特定的配置 geo.add_coordinate()
4 添加数据及配置项 chart.add()
5 生成本地文件(html/svg/jpeg/png/pdf/gif) chart.render()
1.柱状图和折线图
# encoding: utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from pyecharts import Bar

info = []
city = []
count = []
with open('city.txt','r')as f:
    data = f.readlines()
for i in set(data):
    if '-'not in i:
        info.append((int(data.count(i)),i))
info.sort(reverse=True)

for i in info[:15]:
    city.append(i[1])
    count.append(i[0])

bar = Bar("前十排名地区", "分布情况")
bar.add("地区",city,count,is_visualmap=True, visual_range=[0, 3500], visual_text_color='#fff', is_more_utils=True,is_label_show=True)
bar.show_config()
bar.render('bar.html')

设置其他颜色的主题:bar.use_theme(‘dark’)  更多颜色主题:

2.生成圆饼图
bar = Pie()
bar.add("地区",city,count,is_visualmap=True, visual_range=[0, 3500], visual_text_color='#fff', is_more_utils=True,is_label_show=True)
bar.use_theme('dark')
bar.show_config()
bar.render('bar.html')

bar.add("地区",city,count,rosetypr='area',is_label_show=True)

通过add中的参数可以设置图表的样式 详细参数:http://pyecharts.org/#/zh-cn/charts_configure?id=%e9%80%9a%e7%94%a8%e9%85%8d%e7%bd%ae%e9%a1%b9

bar.add("地区",city,count,rosetypr='area',is_label_show=True,radius=[20,75])

通过radius=[20,75]来设置缺少的那部分

bar.add("地区",city,count,rosetypr='area',is_label_show=True,radius=[20,75],rosetype='area')

通过设置rosetype=’area’设置成玫瑰图

3.云词
from pyecharts import WordCloud
wordcloud = WordCloud(width=2500, height=1200)
wordcloud.add("",city,count, word_size_range=[10, 100])
wordcloud.render()

# encoding: utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import jieba,random
from pyecharts import WordCloud

if __name__ == '__main__':
    name = [
     '{}'.format(random.randint(1,20)) for i in range(20)]
    value = [
     10000, 6181, 4386, 4055, 2467, 2244, 1898, 1484, 1112,
     965, 847, 582, 555, 550, 462, 366, 360, 282, 273, 265]
    wordcloud = WordCloud(width=1300, height=620)
    wordcloud.add("", name, value, word_size_range=[20, 150])
    wordcloud.render()

value = [
    '{}'.format(random.randint(1, 200)) for i in range(20)]

name = [
    '电影','还好','不过','也','没有','特别好看','就是','比较搞笑','笑点不多',
    '社会意义','我们','看到','关于人性','爱','阶级','欲望','等等','一出一出的好戏','我想','黄导']
value = [
    '{}'.format(random.randint(1, 200)) for i in range(20)]   #对应name中的值,当这个值越大,字体也就越大
wordcloud = WordCloud(width=1300, height=620)
wordcloud.add("", name, value, word_size_range=[20, 150])
wordcloud.render()