文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何使用Python绘制简单的折线图

2023-07-04 10:24

关注

这篇文章主要讲解了“如何使用Python绘制简单的折线图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Python绘制简单的折线图”吧!

创建RandomWalk类

为模拟随机漫步,我们将创建一个RandomWalk类,随机选择前进方向,这个类有三个属性,一个存储随机漫步的次数,另外两个存储随机漫步的每个点的x,y坐标,每次漫步都从点(0,0)出发

from random import choiceclass RandomWalk():    '''一个生成随机漫步数据的类'''    def __init__(self,num_points=5000):        '''初始化随机漫步的属性'''        self.num_points = num_points        # 所有随机漫步都始于(0,0)        self.x_values = [0]        self.y_values = [0]

选择方向

我们将使用fill_walk()来生成随机漫步包含的点,并决定每次漫步的方向。并将其添加到random_walk.py中 改正代码如下:

from random import choiceclass RandomWalk():    '''一个生成随机漫步数据的类'''    def __init__(self, num_points=5000):        '''初始化随机漫步的属性'''        self.num_points = num_points        # 所有随机漫步都始于(0,0)        self.x_values = [0]        self.y_values = [0]    def fill_walk(self):        '''计算随机漫步包含的所有点'''        # 不断漫步,知道列表到达指定的长度        while len(self.x_values) < self.num_points:            # 决定前进方向以及沿这个方向前进的距离            x_direction = choice([1, -1])            x_distance = choice([0, 1, 2, 3, 4])            x_step = x_direction * x_distance            y_direction = choice([1, -1])            y_distance = choice([0, 1, 2, 3, 4])            y_step = y_direction * y_distance            # 拒绝原地漫步            if x_step == 0 and y_step == 0:                continue            # 计算下一个点的x,y值            next_x = self.x_values[-1] + x_step            next_y = self.y_values[-1] + y_step            self.x_values.append(next_x)            self.y_values.append(next_y)

绘制随机漫步图

下面的代码将随机漫步的所有点都绘制出来,将文件命名为rw_visual.py

import matplotlib.pyplot as pltfrom random_walk import RandomWalk# 创建一个RandomWalk实例,并将其包含的点都绘制出来rw = RandomWalk()rw.fill_walk()plt.scatter(rw.x_values, rw.y_values, s=10)plt.show()

模拟多次随机漫步

每次随机漫步都不同,因此每次生成的各种模式也很有趣,要在不多次运行程序的情况下,进行随机漫步,可以把代码放入一个while循环中,每次关闭matplotlib查看器,系统会询问你是否再次模拟随机漫步(输入y将再次进行随机漫步,输入n将结束程序) 改进代码如下:

import matplotlib.pyplot as pltfrom random_walk import RandomWalk# 只要程序处于活动状态,就不断模拟随机漫步while True:    # 创建一个RandomWalk实例,并将其包含的点都绘制出来    rw = RandomWalk()    rw.fill_walk()    plt.scatter(rw.x_values, rw.y_values, s=10)    plt.show()    keep_running = input("make another walk? (y/n):")    if keep_running.upper() == 'N':        break

每次随机漫步都不同,就如人的一生每走一步都会有不同的经历

如何使用Python绘制简单的折线图

给点着色

使用颜色映射指出漫步中各点的先后顺序,并删除每个点的黑色轮廓,让颜色更明显。将参数c设置为points_numbers,指定使用颜色映射Blues,并传递实参edgecolor=none以删除每个点周围的轮廓,随机漫步图会从浅蓝色渐变到深蓝色,代码如下:

import matplotlib.pyplot as pltfrom random_walk import RandomWalk# 只要程序处于活动状态,就不断模拟随机漫步while True:    # 创建一个RandomWalk实例,并将其包含的点都绘制出来    rw = RandomWalk()    rw.fill_walk()    point_numbers = list(range(rw.num_points))    plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues, edgecolors='none', s=10)    plt.show()    keep_running = input("make another walk? (y/n):")    if keep_running.upper() == 'N':        break

效果如下:

如何使用Python绘制简单的折线图

突出起点和终点

还可以呈现出随机漫步的起点和终点,我们让起点和终点变得更大,并显示为不同的颜色,代码如下:

import matplotlib.pyplot as pltfrom random_walk import RandomWalk# 只要程序处于活动状态,就不断模拟随机漫步while True:    # 创建一个RandomWalk实例,并将其包含的点都绘制出来    rw = RandomWalk()    rw.fill_walk()    point_numbers = list(range(rw.num_points))    plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues, edgecolors='none', s=10)    # 突出起点和重点    plt.scatter(0, 0, c='green', edgecolors='none', s=100)    plt.scatter(rw.x_values[-1], rw.y_values[-1], c='red', edgecolors='none', s=100)    plt.show()    keep_running = input("make another walk? (y/n):")    if keep_running.upper() == 'N':        break

效果如下:

如何使用Python绘制简单的折线图

增加点数

增加点数,以提供更多的数据,我们在创建RandomWalk实例时增大num_points的值,并在绘图时改变每个点的大小,代码如下:

import matplotlib.pyplot as pltfrom random_walk import RandomWalk# 只要程序处于活动状态,就不断模拟随机漫步while True:    # 创建一个RandomWalk实例,并将其包含的点都绘制出来    rw = RandomWalk(50000)    rw.fill_walk()    point_numbers = list(range(rw.num_points))    plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues, edgecolors='none', s=1)    # 突出起点和重点    plt.scatter(0, 0, c='green', edgecolors='none', s=100)    plt.scatter(rw.x_values[-1], rw.y_values[-1], c='red', edgecolors='none', s=100)    plt.show()    keep_running = input("make another walk? (y/n):")    if keep_running.upper() == 'N':        break

效果如下:

如何使用Python绘制简单的折线图

调整尺寸以适用屏幕

图表适合屏幕大小时,更能有效地将数据中的规律呈现出来。函数figure()用于指定图表的宽度、高度、分辨率和背景色。需要给形参figsize指定一个元组,向matplotlib指出绘图窗口的尺寸(单位为英寸) 如果你知道自己的系统分辨率,可使用形参dpi像figure()传递该分辨率,以有效利用可用的屏幕空间代码如下:

import matplotlib.pyplot as pltfrom random_walk import RandomWalk# 只要程序处于活动状态,就不断模拟随机漫步while True:    # 创建一个RandomWalk实例,并将其包含的点都绘制出来    rw = RandomWalk(50000)    rw.fill_walk()    # 设置绘图窗口的大小    plt.figure(dpi=128, figsize=(10, 6))    point_numbers = list(range(rw.num_points))    plt.scatter(rw.x_values, rw.y_values, c=point_numbers, cmap=plt.cm.Blues, edgecolors='none', s=1)    # 突出起点和重点    plt.scatter(0, 0, c='green', edgecolors='none', s=100)    plt.scatter(rw.x_values[-1], rw.y_values[-1], c='red', edgecolors='none', s=100)    plt.show()    keep_running = input("make another walk? (y/n):")    if keep_running.upper() == 'N':        break

运行效果如下图所示

如何使用Python绘制简单的折线图

感谢各位的阅读,以上就是“如何使用Python绘制简单的折线图”的内容了,经过本文的学习后,相信大家对如何使用Python绘制简单的折线图这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯