一、词云库wordcloud的安装与应用
1、安装
pip install wordcloud #网络安装
conda update pillow #更新第三方库
python -m pip install 本地路径 #本地安装
2、应用
生成步骤:
创建词云对象-->加载词云文本-->输出词云图片(文件)
(1)默认的矩形词云图片
(2)提供的图形词云图片
示例1:
#示例1
import wordcloud #导入wordcloud库
import matplotlib.pyplot as plt #导入matplotlib.pyplot库并在代码引用时使用plt代替
from PIL import Image #导入PIL库中的Image模块
wc = wordcloud.WordCloud() #(1)创建词云对象
wc.generate('sahnghai dianzi zhiye jishu xueyuan') #(2)加载词云文本
wc.to_file('../R&Q_pic/test.png') #(3)输出词云图片文件将生成的词云图片保存在指定的文件
plt.imshow(wc) #在坐标系中显示图像
plt.axis('off') #隐藏坐标轴
plt.savefig('../R&Q_pic/test_1.png') #必须要在 plt.show()上面不然保存的图片为空白
plt.show() #直接显示图像
运行结果:
示例2:在编写时需要先使用pip install jieba安装jieba库。
#示例2:原文件为中文
import jieba
import wordcloud
from imageio.v2 import imread #导入根据数据图片库
import matplotlib.pyplot as plt
with open('../Stu_pack_10/万疆.txt',encoding='utf-8') as file:
fr = file.read()
fr = jieba.lcut(fr) #以空格分隔词汇,以列表值存放
fr = ' '.join(fr) #用空格连接成一个字符串
mk = imread('../Stu_pack_10/Love_Star.png')
wc = wordcloud.WordCloud(mask = mk,font_path = r'C:/Windows/Fonts/simhei.ttf')
wc.generate(fr)
wc.to_file('../R&Q_pic/Love_star.png')
plt.imshow(wc)
plt.axis('off')
plt.show
运行结果:
二、绘图的类型:
1、线形图:plot()
2、直方图:hist()
3、杂行图:bar()
4、饼图:pie()
5、散点图:soatter()
6、3D图:from mpl_toolkits.mply3d import Axes3D
7、幼态交互图:pyecharts
示例一: 线形图
练习1、
#1、线形图:plot()
import matplotlib.pyplot as plt
plt.plot([0,2,4,6,8],[3,1,4,5,2])
plt.ylabel('Grade')
plt.savefig('../R&Q_pic/test0', dpi=600)
plt.show()
运行结果:
练习2、
import numpy as np
import matplotlib.pyplot as plt
a = np.arange(10) #创建一个0-9的整数序列
plt.plot(a,a*1.5,'ro-',label='a')
plt.plot(a,a*2.5,'gx--',label='b')
plt.plot(a,a*3.5,'y*',label='c')
plt.plot(a,a*4.5,'bs-',label='d')
plt.plot(a,a**2,'mH--',label='e')
plt.savefig('../R&Q_pic/test2',dpi=600)
plt.legend() #显示比例
plt.show()
运行结果:
练习3、
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family'] = 'kaiti' #设置中文字体
x = np.arange(0,4,0.02) #生成X轴序列
y_1 = np.sin(np.pi*x)+2 #将Y坐标向正风向平移两位
y_2 = np.cos(np.pi*x)
plt.plot(x,y_1,'mx')
plt.plot(x,y_2,'r')
plt.legend(['正弦曲线','余弦曲线'])
plt.title('正余弦曲线图') #设置图标的标题
plt.show()
运行结果:
练习4、
import numpy as np
import matplotlib.pyplot as plt
def f(t):
return np.exp(-t)*np.cos(2*np.pi*t)
a = np.arange(0,5,0.02)
plt.subplot(322)
plt.plot(a,f(a))
plt.subplot(323)
plt.plot(a,np.cos(2*np.pi*a),'-',color='r')
plt.subplot(324)
plt.plot(a,np.sin(2*np.pi*a),'--',color='g')
plt.subplot(325)
plt.plot(a,np.tan(2*np.pi*a),':',color='m')
plt.savefig('../R&Q_pic/test4',dpi=600)
运行结果:
示例二、条形图
#2、条形图:bar()
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = "STSong"
years = ["2014","2015","2016","2017","2018","2019"]
baokao_nums = [172, 164.9, 177, 201, 238, 290]
luqu_nums = [54.87, 57.06, 58.98, 72.22, 76.25, 79.3]
x = range(len(years))
plt.bar(x, height=baokao_nums, width=0.4)
plt.bar([i + 0.4 for i in x], luqu_nums, width=0.4)
plt.xticks([i + 0.2 for i in x],years)
plt.legend(["研究生报考人数","研究生录取人数"])
plt.ylabel("人数/万人")
plt.xlabel("年份")
plt.title("研究生历年报考和录取情况")
plt.savefig('../R&Q_pic/test5',dpi=600)
plt.show()
运行结果:
示例三、饼图
#3、饼图:pie()
#案列:已知一个学生一天的活动时间分配为:学习8小时 、睡觉7小时、吃饭3小时,玩乐6小时、绘制该学生一天时间分配饼状图
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = "FangSong" #设置字体
plt.rcParams['font.size'] = "18" #设置字体大小
labels = ['学习','睡觉 ','吃饭','玩乐'] #活动标签
hours = [8,7,3,6] #时间分配
colors = ['c','m','r','y'] #各部分颜色
plt.pie(hours, labels=labels, colors=colors, shadow=True,explode=(0,0.1,0,0), \
autopct='%0.1f%%', labeldistance= 1.2) #请分别测试说明各参数的含义
plt.title("一天时间分配饼状图")
plt.savefig('../R&Q_pic/test6',dpi=600)
plt.show()
运行结果: