• 技术文章 >后端开发 >Python教程

    使用 Python 和 Matplotlib 在文本中绘制字符

    王林王林2023-04-29 19:31:05转载57

    本文的目的是帮助您开始在 python 中绘制数据。 我们将创建一个条形图来绘制给定文本文件中字符的频率。 在这种情况下,文本文件包含了《了不起的盖茨比》的内容。

    使用 Python 和 Matplotlib 在文本中绘制字符

    第 1 步:创建您的虚拟环境

    这个项目的环境会比较小。 虚拟环境允许您向工作区添加额外的功能,而不会影响计算机的其余部分!

    创建一个目录并在代码编辑器和终端(运行命令的地方)中打开它。

    让我们运行:

    $ python3 -m venv venv
    $ source venv/bin/activate

    我们可以安装我们必要的依赖项

    $ pip3 install matplotlib

    我们还要创建两个文件,read.txt 和 wordcount.py。

    我们将使用 wordcount.py 来分析 read.txt 中的文本。

    第 2 步:阅读文本

    我们可以比较简单的开始,

    import matplotlib.pyplot as plt # plot
    from collections import OrderedDict # this will be used for sorting later
    
    file = open('read.txt')
    text = file.read()
    file.close()

    这就是我们“读取”文件并将内容存储在变量中所需的全部内容。

    第 3 步:分析字符

    我们可以跟踪字符的最好方法是使用 python 字典(在其他编程语言中称为 hashmap)。

    字典是一种非常有用的数据存储方式。 就像真正的字典一样,它会有一个“单词”列表,您可以查看单词以查看定义。

    在编程中,这个概念被推广到“键/值”对。 这意味着我们可以设置字典,当我向字典询问“a”时,它将返回“a”出现的总次数。

    所以让我们编码吧!

    charDict = {} # dictionaries are defined by curly braces
    def count_letter(character):
    character = character.lower()
    if character.isspace():
    return
    if character in charDict:
    charDict[character] = charDict[character] + 1
    else:
    charDict[character] = 1
    
    # loop through text
    for i in text:
    count_letter(i)
    
    charDict = OrderedDict(sorted(charDict.items()))

    让我们回顾一下这里发生了什么。

    第4步:画出来!

    现在我们的数据集已创建,让我们将其组织成轴并绘制它!

    我们将创建一个列表来表示每个轴

    num_list = []
    char_list = []

    这些列表将相互对应,因此如果 char_list 中的第 1 项是“a”,则 num_list 中的第 1 项将是相应的频率。 让我们也把它编码出来。

    char_list = [] # character
    num_list = [] # frequency
    # create x and y axes
    for x,y in charDict.items():
    char_list.append(x)
    num_list.append(y)

    我们使用两个变量循环遍历我们创建的字典中的键/值对,然后将它们添加到我们的数据列表中。

    最后让我们使用 matplotlib 创建并保存这个条形图。

    fig = plt.figure() # create a new figure
    ax = fig.add_subplot() # create a new bar graph within the figure
    fig.canvas.manager.set_window_title('The Great Gatsby') # title of window
    ax.bar(char_list, num_list) # add the data to the graph
    plt.savefig('chars.png') # download an image of the bar graph
    plt.show() # show the image

    是时候测试它了!

    使用下面的代码运行您的文件,为我们的结果做好准备!

    $ python3 wordcount.py

    使用 Python 和 Matplotlib 在文本中绘制字符

    所以要回答我在文章开头提出的问题,字母 e 在《了不起的盖茨比》中被使用了超过 25,000 次! 哇!

    结论

    在本文结束时,我希望您对 matplotlib 和数据科学有所了解。

    以上就是使用 Python 和 Matplotlib 在文本中绘制字符的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:51CTO.COM,如有侵犯,请联系admin@php.cn删除
    专题推荐:数据 Python Matplotlib
    上一篇:python中如何实现修改图像分辨率大小 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Python中的Array模块怎么使用• Python中数据类型如何转换• 怎么用Python展示全国高校的分布情况• python apscheduler cron定时任务触发接口自动化巡检怎么实现• python如何去除字符串最后的换行符‘\n’
    1/1

    PHP中文网