[辣雞小白]關於利用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的魅力所在?哈哈哈哈
繼續加油吧~:)

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