一、词云库wordcloud的安装与应用
1、安装
pip install wordcloud #网络安装
conda update pillow #更新第三方库
python -m pip install 本地路劲 #本地安装
2、应用
生成步骤:
创建词云对象-->加载词云文本-->输出词云图片(文件)
(1)默认的矩形词云图片
(2)提供的图形词云图片
In [5]:
import wordcloud import matplotlib.pyplot as plt
In [6]:
wc = wordcloud.WordCloud() #创建词语对象 wc.generate('shanghai dianzi zhiye jishu xueyuan') #加载词云文本 wc.to_file('../R&Q_pic/test.png') #将生成的词云图片保存在指定的文件夹里面 plt.imshow(wc) #在坐标系中显示图像 plt.axis('off') #隐藏坐标轴 plt.show() #直接显示图像 plt.savefig('../R&Q_pic/test_1.png')
<Figure size 432x288 with 0 Axes>
In [19]:
#示例3:原文件为中文 import jieba #导入分词库(优秀的第三方中文分词库) import wordcloud from imageio import imread #导入根据数据读图片库 import matplotlib.pyplot as plt with open('../Stu_pack/万疆.txt',encoding = 'utf-8')as file: fr = file.read() fr = jieba.lcut(fr) #以空格分隔词汇,以列表值存放 fr = ' '.join(fr) #用空格连接成一个字符串 mk = imread('../Stu_pack/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()
In [20]:
import jieba
In [21]:
jieba.lcut('上海电子信息职业电子学院')
Out[21]:
['上海', '电子信息', '职业', '电子', '学院']
二、matplotlib.pyplot绘图相关的对象:
1、容器类:图(figure)、坐标系(axes)、坐标轴(axis)、刻度(tick)
2、基础类:线(line)、点(marker)、文本(text)、图例(legend)、网格(grid)、标题(title)
三、绘图的类型:
1、线形图:plot() 2、直方图:hist() 3、条形图:bar() 4、饼图:pie() 5、散点图:scatter() 6、3D图:from mpl_toolkits.mplt3d import Axes3D 7、动态交互图:pyecharts
In [29]:
import matplotlib.pyplot as plt plt.plot([3,1,4,5,2]) #y轴的值 plt.ylabel('Grade') #图标的名字 plt.savefig('../R&Q_pic/test0',dpi=600) plt.show() #显示图例
In [27]:
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() #显示图例
In [34]:
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.savefig('../R&Q_pic/test3',dpi=600) plt.show()
In [35]:
#多区域绘图 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') #(2*np.pi*a)是π plt.subplot(324) plt.plot(a,np.sin(2*np.pi*a),'--',color='g') plt.plot(325) plt.plot(a,np.tan(2*np.pi*a),':',color='m') plt.savefig('../R&Q_pic/test4',dpi=600)
In [37]:
#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()
In [38]:
#3、饼图:pie() #案例:已知一个学生一天的活动时间分配为:学习8小时、睡觉7小时、吃饭三小时、玩乐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='%.1f%%', labeldistance=1.2) #请分别测试说明各参数的含义 plt.title("一天时间分配饼状图") plt.savefig('../R&Q_pic/test6',dpi=600) plt.show()