[辣鸡小白]关于利用python实现可视化的一些感想

起因

学校开展实训周要求选课,出于对python的兴趣我选了大数据可视化技术
课程主要内容:

  1. 对ubuntu Linux操作系统的一些基本指令的掌握和实践,vi编辑修改配置文件profile等,训练搭建伪分布式环境–Hadoop环境,并在本地web页面建立可视化。
  2. 在hadoop中进行基本指令的操作练习,包含文件建立,上传,移动,重命名等基本操作。
  3. 间接利用Excel简单处理利用python脚本所写的爬虫爬取的数据,并进行可视化的演示。
  4. 利用python直接进行数据的处理,并利用matplotlib,numpy等py库函数进行可视化的输出
  5. 利用python脚本实现可视化输出词云。

实现过程

sin-cos折线可视化的实现过程

#coding=utf-8
import numpy as np
import matplotlib.pylab as pl
import matplotlib.font_manager as fm

t = np.arange(0.0, 2.0*np.pi, 0.01)    #自变量取值范围
s = np.sin(t)                          #计算正弦函数值
z = np.cos(t)                          #计算余弦函数值
pl.plot(t,                             #x轴座标
        s,                             #y轴座标
        label='正弦',                  #标签
        color='red')                   #颜色
pl.plot(t, z, label='余弦', color='blue')
pl.xlabel('x-变量',                    #标签文本
           fontproperties='STKAITI',   #字体
           fontsize=18)                #字号
pl.ylabel('y-正弦余弦函数值', fontproperties='simhei', fontsize=18)
pl.title('sin-cos函数图像',            #标题文本
          fontproperties='STLITI',    #字体
          fontsize=24)                 #字号
myfont = fm.FontProperties(fname=r'C:\Windows\Fonts\STKAITI.ttf')
pl.legend(prop=myfont)                #显示图例
pl.show()                              #显示绘制的结果图像

由于 py脚本中使用了中文,因此py程序头要添加说明coding为utf-8
如果添加#coding=utf-8不成功,那么可以添加#-*-coding=utf-8-*-
运行显示 在这里插入图片描述
实现了sin-cos折线的可视化

词云可视化的实现过程

简单词云1

from wordcloud import WordCloud
import matplotlib.pyplot as plt

# Read the whole text.
text = open('test1.txt').read()

# Generate a word cloud image
wordcloud = WordCloud().generate(text)

# Display the generated image:
# the matplotlib way:
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()

代码是在网上copy的其他博主的,类似的词云代码网上有很多
其中 text = open(‘test1.txt’).read() 一行 ,test1.txt为自己创建的txt文本文件,把文件放在python project所在的目录下,方便直接引入
运行一下 得到
在这里插入图片描述
其中 txt文本为:在这里插入图片描述

简单词云2

实现代码为:

#coding=utf-8
from wordcloud import WordCloud
import jieba
from matplotlib import pyplot as plt
#import numpy as np
# 打开词云文本
txt = open("test1.txt","rb").read()
#用jieba进行分词
txtout = "".join( jieba.cut(txt,cut_all=False) )
print(txtout)
#3:读取词云图片
#mask_pic = Image.open("D:\\0000_2018_python_study\\1_programma\\source\\pic.png")
#mask_pic_array = np.array(mask_pic)#将词云图片转换为数组

#4:设置词云的属性
font = "/System/Library/Fonts/Helvetica.ttc"#词云的中文字体所在路径
wc = WordCloud(font_path = font,
               background_color="yellow",
               #mask = mask_pic_array,
               contour_width=4.5,
               contour_color="black",
               )

#5:生成词云
wc.generate(txtout)
#6:存储词云
wc.to_file("cy.png")

#第二种方法
plt.imshow(wc,interpolation='bilinear')
plt.axis('off')
plt.tight_layout()
#存储图像
plt.savefig('cy2.png',dpi=200)
plt.show()

其中font = “/System/Library/Fonts/Helvetica.ttc” 一行,font后要写清楚自己电脑中字体的绝对路径,也可以自己下载其他字体,我用的是mac,mac的字体目录在/System/Library/Fonts下,py文件中要具体到某种字体的绝对路径。
txt = open(“test1.txt”,“rb”).read() 中的test1.txt和上面的一样
此代码的实现还引入了jieba库
关于jieba库的使用和介绍可以看这位大佬的blog:https://www.cnblogs.com/wkfvawl/p/9487165.html
运行显示 :在这里插入图片描述

总结

作为喜欢ctf和python的小白还是感觉这次选修挺获益的,因为恰巧在刚刚的山东省深思杯决赛中就碰到了一个需要用python写脚本进行绘图的题,看大佬们的wp是利用图片处理函数PIL库进行输出后得到flag。
同时越来越能感觉到python的魅力所在?哈哈哈哈
继续加油吧~:)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章