鱼C论坛

 找回密码
 立即注册
查看: 896|回复: 21

【最新唐探三的数据】谁能做成最帅数据可视化??

[复制链接]
发表于 2021-2-18 11:28:53 | 显示全部楼层 |阅读模式
66鱼币
本帖最后由 不二如是 于 2021-2-22 09:25 编辑

2021-02-18_11-22-48.jpg


春节假期用代理写了一款爬虫(源码暂未公布),整理成 .csv 数据。

如果想看讲解,大家可以围观:用 Python 分析豆瓣上唐探3口碑【扑街??】

既然论坛上大佬那么多,那不如看谁能把这些数据加工成很棒的图表!
(后期会在鱼C官方视频中展示)

欢迎各显神通,基于 Python 库(Matplotlib、Pandas、词云...) + 提供的数据,挖掘出你认为最帅的样子!

数据包: Ori.csv.zip (24.95 KB, 下载次数: 20)

评分

参与人数 2荣誉 +7 鱼币 +7 贡献 +3 收起 理由
小伤口 + 2 + 2 感谢楼主无私奉献!
鱼C-小师妹 + 5 + 5 + 3 坐等大佬一起合作出视频?

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 6 天前 | 显示全部楼层
本帖最后由 青出于蓝 于 2021-2-22 07:47 编辑

水平有限,先展示两种~
1,词云
上代码
  1. import matplotlib.pyplot as plt
  2. from wordcloud import WordCloud
  3. from openpyxl import *
  4. #导入需要的库


  5. text="《唐人街探案3》2月12日上映"
  6. wb = load_workbook("Ori.xlsx")
  7. sheet = wb["Ori"]

  8. for i in sheet['D']:
  9.     text+=i.value
  10.    
  11. wordcloud = WordCloud(width=1000, #图片的宽度
  12.                       height=860,  #高度
  13.                       margin=2, #边距
  14.                       background_color='black'#可以选用其他颜色的背景
  15.                       font_path='字体.ttf'
  16.                       )
  17. wordcloud.generate(text) #分词
  18. wordcloud.to_file('唐人街探案3词云.jpg')

复制代码

效果图

2,扇形统计图
代码
  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. from openpyxl import *
  4. #导入需要的库

  5. wb = load_workbook("Ori.xlsx")
  6. sheet = wb["Ori"]
  7. #打开文件

  8. one=0
  9. two=0
  10. three=0
  11. four=0
  12. five=0
  13. data={"一星":1,"二星":2,"三星":3,"四星":4,"五星":5,"评论星级":0}
  14. for i in sheet['B']:
  15.     if data[i.value]==1:
  16.         one+=1
  17.     if data[i.value]==2:
  18.         two+=1
  19.     if data[i.value]==3:
  20.         three+=1
  21.     if data[i.value]==4:
  22.         four+=1
  23.     if data[i.value]==5:
  24.         five+=1

  25. groups = ["1星","2星","3星","4星","5星"]
  26. offsets = [0, 0, 0, 0, 0]  

  27. # 生成数据
  28. plt.rcParams['font.sans-serif'] = 'SimHei'
  29. plt.rcParams['axes.unicode_minus'] = False
  30. rng = np.random.RandomState(27)
  31. sj=[one,two,three,four,five]
  32. plt.pie(sj, labels=groups,explode=offsets,autopct='%1.1f%%',startangle=90,shadow=True)# 显示阴影

  33. plt.show()

  34. #绘图并展示

复制代码

效果图

小白水平有限,如有不足,请指出喔


again.jpg
唐探三统计图.png

评分

参与人数 1荣誉 +6 鱼币 +20 贡献 +6 收起 理由
不二如是 + 6 + 20 + 6 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 5 天前 | 显示全部楼层
本帖最后由 孤独的嫖客 于 2021-2-23 12:54 编辑

先上图:
图片1.png
申明:采用图像仅用作美化词云展示效果,评论内容与图像无关!
更新2021年2月23日
  • 修改了目录结构,使其看起来更加清晰明了
  • 取消了jieba分词,让词云还原评论本质
  • 尝试使用pyecharts作图(TODO)未完成
功能实现:
  • 获取程序运行路径,方便服务器部署
  • pandas 读取csv指定列保存到txt
  • 使用中文分词 jieba 对评论做语言处理
  • 使用停用词排除干扰
  • 使用 Worldcloud 创建词云
  • 使用自定义画像美化词云


注意:
worldcloud 使用pip install 无法直接安装成功(macos,linux 未测试)
安装worldcloud 需要whl文件,imgs文件夹中附带了适配win10 64位 python3.9版本的whl文件,相同环境可以直接使用 pip install 绝对路径+wordcloud-1.8.1-cp39-cp39-win_amd64.whl安装
其他python版本的可以到这里下载whl文件
  1. https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
复制代码
最后建议脚本运行环境为python 3.8以上 因为脚本使用了3.8版本的新特性
代码展示:
  1. from wordcloud import WordCloud
  2. from imageio import imread
  3. import pandas as pd
  4. import os
  5. import logging as log

  6. # 设置停用词
  7. stopword = ['什么', '没有', '真的', '这种', '那里',
  8.             '就是', '可以', '一个', '还是', '最后',
  9.             '这个', '但是', '总之', '不要', '这部',
  10.             '一部', '故事', '这么', '出来', '应该',
  11.             '电影', '不是', '为了', '还有', '你们',
  12.             '系列', '觉得', '自己', '已经', '整个',
  13.             '一直', '还是', '出来', '完全', '看到'
  14.             '那个', '之后', '除了', '其中', '长泽雅美',
  15.             '陈思诚', '妻夫木聪', '浅野忠信', '铃木保奈美',
  16.             'the','world','大过年的','三浦友和']

  17. # def fenci():
  18. #     # 设置用户字典
  19. #     jieba.load_userdict(parent_dir+"\\imgs\\自定义字典.txt")
  20. #     with open(filepath, "r", encoding="utf8") as f:
  21. #         file = f.read()
  22. #
  23. #     # 数据清洗
  24. #     wordslist = jieba.lcut(file)
  25. #     with open(parent_dir + "\\tmp\\分词结果.txt", "w", encoding="utf8") as f:
  26. #         f.write(" ".join(wordslist))
  27. #     log.info("数据分词完毕,开始清洗...")
  28. #     regworld = list()
  29. #     for i in wordslist:
  30. #         if len(i) > 1:
  31. #             regworld.append(i)
  32. #
  33. #
  34. #     outworld = list()
  35. #     for i in regworld:
  36. #         if i not in stopword:
  37. #             outworld.append(i)
  38. #     with open(parent_dir+"\\tmp\\清洗结果.txt", "w", encoding="utf8") as f:
  39. #         f.write(" ".join(outworld))
  40. #     words = " ".join(outworld)
  41. #     return words


  42. def creatCiYun(words):
  43.     log.info("数据清洗完毕,开始画图...")
  44.     fontpath = parent_dir + "\\imgs\\Alibaba-PuHuiTi-Regular.ttf"
  45.     bgpic = imread(parent_dir + "\\imgs\\3.png")
  46.     wc = WordCloud(font_path=fontpath,stopwords=stopword,
  47.                    mask=bgpic,scale=3,
  48.                    background_color='white', )
  49.     wc = wc.generate(words)
  50.     wc.to_file(parent_dir + "\\tmp\\唐探3.png")


  51. if __name__ == '__main__':
  52.     # 日志初始化
  53.     log.basicConfig(level=log.INFO, format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
  54.     # 获取相对路径
  55.     parent_dir = os.path.dirname(os.path.abspath(__file__))
  56.     log.debug(f"程序运行路径{parent_dir}")
  57.     filepath = parent_dir + "\\tmp\\tempdata.txt"
  58.     # 判断程序是否首次运行,是则读取csv,非首次运行不需要读取csv
  59.     try:
  60.         f = open(filepath, "r")
  61.         f.close()
  62.     except IOError:
  63.         log.info("初始化中....")
  64.         f = open(filepath, "w", encoding="utf8")
  65.         f.close()
  66.         # 读取评论
  67.         df = pd.read_csv(parent_dir + '\\imgs\\Ori.csv', usecols=[3])
  68.         # 提取所有评论写入txt,为分词做准备工作
  69.         df.to_csv(filepath, sep="\t", index=False, header=None)
  70.     # data = fenci()
  71.     with open(parent_dir+"\\tmp\\tempdata.txt","r",encoding="utf8") as f:
  72.         data = f.read()
  73.     creatCiYun(data)
复制代码

补充一下项目地址,不然没有图像,字体资源,程序无法直接运行
  1. https://gitee.com/Rt_hum/three-words-of-tang-tan
复制代码

感谢论坛的活动,学习了词云可视化





评分

参与人数 1荣誉 +6 鱼币 +20 贡献 +6 收起 理由
不二如是 + 6 + 20 + 6 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-18 11:37:16 From FishC Mobile | 显示全部楼层
前排等大佬出现
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-18 11:41:15 | 显示全部楼层
等大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-18 11:46:54 | 显示全部楼层
坐等大佬一起合作出视频?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-18 11:48:03 | 显示全部楼层
等一个大佬出现
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-18 18:53:18 | 显示全部楼层
等可视化大佬上线! 小甲鱼记得在视频中公布一下大佬ID哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-18 23:18:35 | 显示全部楼层
2020-2-18 23:17

已经有 7 位大佬下载了附件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-18 23:37:09 | 显示全部楼层
看我的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-19 10:05:46 | 显示全部楼层
坐等大佬现身!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-19 10:31:49 From FishC Mobile | 显示全部楼层
等待膜拜大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-19 11:15:54 From FishC Mobile | 显示全部楼层
这个唐人街探案3的广告我真的服了。。。。。。甚至能让广告干扰到剧情。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-19 12:19:37 | 显示全部楼层
等大佬 顺便学习下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-19 12:27:36 | 显示全部楼层
看我的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-19 14:16:04 | 显示全部楼层
刚入编程的我,过来围观
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-2-19 23:11:30 | 显示全部楼层
路过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 7 天前 | 显示全部楼层
看我的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 7 天前 | 显示全部楼层
有大佬出现了么,等待大佬的出现
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 6 天前 | 显示全部楼层
看我的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 6 天前 | 显示全部楼层
本帖最后由 青出于蓝 于 2021-2-21 12:37 编辑

词云代码无法直接运行,代码里导入了一个网上下载的字体~
链接: https://pan.baidu.com/s/1wCRq8abt8PQnHFl4tv4qyQ 提取码: 3huc
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2021-2-27 18:34

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表