本文的目的是帮助您开始使用Python绘制数据。我们将创建一个条形图来绘制给定文本文件中字符的频率。在本例中,文本文件包含《了不起的盖茨比》的内容。第1步:创建虚拟环境这个项目的环境相对较小。虚拟环境允许您在不影响计算机其余部分的情况下向工作区添加额外功能!创建一个目录并在代码编辑器和终端(运行命令的位置)中打开它。让我们运行:$python3-mvenvvenv$sourcevenv/bin/activate我们可以安装必要的依赖项$pip3installmatplotlib我们还创建了两个文件,read.txt和wordcount.py。我们将使用wordcount.py来分析read.txt中的文本。第二步:阅读文本我们可以从比较简单的开始,importmatplotlib.pyplotasplt#plotfromcollectionsimportOrderedDict#后面排序用到file=open('read.txt')text=file.read()file.close()首先,它导入我们的绘图和排序库其次,我们使用内置的open函数,它允许我们打开一个文件进行读写。然后我们读取文件中的文本并将其存储到文本变量中。最后,我们关闭文件,因为我们不再使用它,所以我们只需要“读取”文件并将内容存储在变量中。第3步:分析字符跟踪字符的最佳方法是使用Python字典(在其他编程语言中称为哈希图)。字典是一种非常有用的数据存储方式。就像一本真正的字典,它会有一个“单词”列表,您可以查找它来查看定义。在编程中,这个概念被概括为“键/值”对。这意味着我们可以建立一个字典,当我向字典查询“a”时,它会返回“a”出现的总次数。所以让我们编码吧!charDict={}#字典由大括号定义defcount_letter(character):character=character.lower()ifcharacter.isspace():returnifcharacterincharDict:charDict[character]=charDict[character]+1else:charDict[character]=1#loopthroughtextforiintext:count_letter(i)charDict=OrderedDict(sorted(charDict.items()))让我们回顾一下这里发生了什么。首先我们定义一个空字典,接下来我们使用def关键字定义一个函数。此函数采用变量“字符”并检查它是否为空白(空格、制表符、换行符)。您可以在选择中添加其他条件,例如isalpha()以确定字符是否为字母表,然后检查它是否已在字典中。如果它在字典中,它会将值更改为先前的值加1(因为我们正在计算这个字符),否则它会在字典中添加一个初始计数为1的新条目,然后我们遍历每个字符,其中“i”代表一个单独的字符,我们保存并运行我们的函数来计算它们最后,我们使用OrderdedDict导入按字母顺序对字典进行排序第4步:绘制它!现在我们的数据集已创建,让我们将其组织成轴并绘制出来!我们将创建一个列表来表示每个轴num_list=[]char_list=[]这些列表将相互对应,因此如果char_list中的第一项是“a”,则num_list中的第一项将是对应的频率。让我们也把它编码出来。char_list=[]#characternum_list=[]#frequency#createxandyaxesforx,yincharDict.items():char_list.append(x)num_list.append(y)我们使用两个变量来遍历我们创建的字典中的键/值对,并将它们添加到我们的数据列表中。最后,让我们使用matplotlib创建并保存此条形图。fig=plt.figure()#createanewfigureax=fig.add_subplot()#createanewbargraphwithinthefigurationfig.canvas.manager.set_window_title('TheGreatGatsby')#titleofwindowax.bar(char_list,num_list)#将数据添加到图形中plt.savefig('chars.png')#下载条形图的图像graphplt.show()#显示图像首先,我们创建一个新图形。图是整体窗口向图中添加绘图添加带有我们选择的数据的条形图下载图像显示图像测试它的时间!使用以下代码运行您的文件并为我们的结果做好准备!$python3wordcount.py因此,为了回答我在帖子开头提出的问题,字母e在《了不起的盖茨比》中使用了超过25,000次!哇!结论在本文结束时,我希望您对matplotlib和数据科学有所了解。
