精华内容
下载资源
问答
  • Python绘图Turtle库详解

    万次阅读 多人点赞 2017-08-02 17:36:45
    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形...

            Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

    turtle绘图的基础知识:

    1. 画布(canvas)

            画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。

            设置画布大小

             turtle.screensize(canvwidth=None, canvheight=None, bg=None),参数分别为画布的宽(单位像素), 高, 背景颜色。

            如:turtle.screensize(800,600, "green")

                   turtle.screensize() #返回默认大小(400, 300)

            turtle.setup(width=0.5, height=0.75, startx=None, starty=None),参数:width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。

            如:turtle.setup(width=0.6,height=0.6)

                   turtle.setup(width=800,height=800, startx=100, starty=100)


    2. 画笔

    2.1 画笔的状态

            在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。

    2.2 画笔的属性

            画笔(画笔的属性,颜色、画线的宽度等)

            1) turtle.pensize():设置画笔的宽度;

            2) turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组。

            3) turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

    2.3 绘图命令

             操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令。

    (1)    画笔运动命令

    命令

    说明

    turtle.forward(distance)

    向当前画笔方向移动distance像素长度

    turtle.backward(distance)

    向当前画笔相反方向移动distance像素长度

    turtle.right(degree)

    顺时针移动degree°

    turtle.left(degree)

    逆时针移动degree°

    turtle.pendown()

    移动时绘制图形,缺省时也为绘制

    turtle.goto(x,y)

    将画笔移动到坐标为x,y的位置

    turtle.penup()

    提起笔移动,不绘制图形,用于另起一个地方绘制

    turtle.circle()

    画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆

    setx( )

    将当前x轴移动到指定位置

    sety( )

    将当前y轴移动到指定位置

    setheading(angle)

    设置当前朝向为angle角度

    home()

    设置当前画笔位置为原点,朝向东。

    dot(r)

    绘制一个指定直径和颜色的圆点

     

    (2)     画笔控制命令

    命令

    说明

    turtle.fillcolor(colorstring)

    绘制图形的填充颜色

    turtle.color(color1, color2)

    同时设置pencolor=color1, fillcolor=color2

    turtle.filling()

    返回当前是否在填充状态

    turtle.begin_fill()

    准备开始填充图形

    turtle.end_fill()

    填充完成

    turtle.hideturtle()

    隐藏画笔的turtle形状

    turtle.showturtle()

    显示画笔的turtle形状

     

    (3)    全局控制命令

    命令

    说明

    turtle.clear()

    清空turtle窗口,但是turtle的位置和状态不会改变

    turtle.reset()

    清空窗口,重置turtle状态为起始状态

    turtle.undo()

    撤销上一个turtle动作

    turtle.isvisible()

    返回当前turtle是否可见

    stamp()

    复制当前图形

    turtle.write(s [,font=("font-name",font_size,"font_type")])

    写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项

     

    (4)    其他命令

    命令

    说明

    turtle.mainloop()或turtle.done()

    启动事件循环 -调用Tkintermainloop函数。

    必须是乌龟图形程序中的最后一个语句。

    turtle.mode(mode=None)

    设置乌龟模式(“standard”“logo”“world”)并执行重置。如果没有给出模式,则返回当前模式。

    模式

    初始龟标题

    正角度

    standard

    向右(东)

    逆时针

    logo

    向上(北)

    顺时针

    turtle.delay(delay=None)

    设置或返回以毫秒为单位的绘图延迟。

    turtle.begin_poly()

    开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。

    turtle.end_poly()

    停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。

    turtle.get_poly()

    返回最后记录的多边形。

     

    3. 命令详解

            3.1 turtle.circle(radius, extent=None, steps=None)

            描述:以给定半径画圆

            参数:

            radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆;

            extent(弧度) (optional);

            steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)。

    举例:

    circle(50) # 整圆;

    circle(50,steps=3) # 三角形;

    circle(120, 180) # 半圆

     

    实例:

    1、太阳花

    # coding=utf-8
    import turtle
    import time
    
    # 同时设置pencolor=color1, fillcolor=color2
    turtle.color("red", "yellow")
    
    turtle.begin_fill()
    for _ in range(50):
    turtle.forward(200)
    turtle.left(170)
    turtle.end_fill()
    
    turtle.mainloop()
    


    2、五角星

    # coding=utf-8
    import turtle
    import time
    
    turtle.pensize(5)
    turtle.pencolor("yellow")
    turtle.fillcolor("red")
    
    turtle.begin_fill()
    for _ in range(5):
      turtle.forward(200)
      turtle.right(144)
    turtle.end_fill()
    time.sleep(2)
     
    turtle.penup()
    turtle.goto(-150,-120)
    turtle.color("violet")
    turtle.write("Done", font=('Arial', 40, 'normal'))
    
    turtle.mainloop()
    


    3、时钟程序

    # coding=utf-8
     
    import turtle
    from datetime import *
     
    # 抬起画笔,向前运动一段距离放下
    def Skip(step):
        turtle.penup()
        turtle.forward(step)
        turtle.pendown()
     
    def mkHand(name, length):
        # 注册Turtle形状,建立表针Turtle
        turtle.reset()
        Skip(-length * 0.1)
        # 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。
        turtle.begin_poly()
        turtle.forward(length * 1.1)
        # 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。
        turtle.end_poly()
        # 返回最后记录的多边形。
        handForm = turtle.get_poly()
        turtle.register_shape(name, handForm)
     
    def Init():
        global secHand, minHand, hurHand, printer
        # 重置Turtle指向北
        turtle.mode("logo")
        # 建立三个表针Turtle并初始化
        mkHand("secHand", 135)
        mkHand("minHand", 125)
        mkHand("hurHand", 90)
        secHand = turtle.Turtle()
        secHand.shape("secHand")
        minHand = turtle.Turtle()
        minHand.shape("minHand")
        hurHand = turtle.Turtle()
        hurHand.shape("hurHand")
       
        for hand in secHand, minHand, hurHand:
            hand.shapesize(1, 1, 3)
            hand.speed(0)
       
        # 建立输出文字Turtle
        printer = turtle.Turtle()
        # 隐藏画笔的turtle形状
        printer.hideturtle()
        printer.penup()
        
    def SetupClock(radius):
        # 建立表的外框
        turtle.reset()
        turtle.pensize(7)
        for i in range(60):
            Skip(radius)
            if i % 5 == 0:
                turtle.forward(20)
                Skip(-radius - 20)
               
                Skip(radius + 20)
                if i == 0:
                    turtle.write(int(12), align="center", font=("Courier", 14, "bold"))
                elif i == 30:
                    Skip(25)
                    turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))
                    Skip(-25)
                elif (i == 25 or i == 35):
                    Skip(20)
                    turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))
                    Skip(-20)
                else:
                    turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))
                Skip(-radius - 20)
            else:
                turtle.dot(5)
                Skip(-radius)
            turtle.right(6)
            
    def Week(t):   
        week = ["星期一", "星期二", "星期三",
                "星期四", "星期五", "星期六", "星期日"]
        return week[t.weekday()]
     
    def Date(t):
        y = t.year
        m = t.month
        d = t.day
        return "%s %d%d" % (y, m, d)
     
    def Tick():
        # 绘制表针的动态显示
        t = datetime.today()
        second = t.second + t.microsecond * 0.000001
        minute = t.minute + second / 60.0
        hour = t.hour + minute / 60.0
        secHand.setheading(6 * second)
        minHand.setheading(6 * minute)
        hurHand.setheading(30 * hour)
        
        turtle.tracer(False) 
        printer.forward(65)
        printer.write(Week(t), align="center",
                      font=("Courier", 14, "bold"))
        printer.back(130)
        printer.write(Date(t), align="center",
                      font=("Courier", 14, "bold"))
        printer.home()
        turtle.tracer(True)
     
        # 100ms后继续调用tick
        turtle.ontimer(Tick, 100)
     
    def main():
        # 打开/关闭龟动画,并为更新图纸设置延迟。
        turtle.tracer(False)
        Init()
        SetupClock(160)
        turtle.tracer(True)
        Tick()
        turtle.mainloop()
     
    if __name__ == "__main__":
        main()

    展开全文
  • python绘图

    2016-12-24 15:38:20
    python绘图matplotlibMatplotlib 可能是 Python 2D-绘图领域使用最广泛的套件,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图使用 import matplotlib.pyplot as plt plt.bar(left = 0,height = 1)...

    python绘图

    matplotlib

    Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图

    使用

    
    import matplotlib.pyplot as plt  
    
    plt.bar(left = 0,height = 1)
    plt.plot([1,2,3,4])  # 划线函数
    plt.ylabel('some numbers')    #为y轴加注释
    plt.show()
    

    划线函数Plot

    plot()还可以接受xy成对的参数,还有一个可选的参数是表示线的标记和颜色,plot函数默认画线是蓝色实线,即字符串'b-',你可以选择自己喜欢的标记和颜色。
    
    import matplotlib.pyplot as plt
    plt.plot([1,2,3,4], [1,4,9,16], 'ro')
    plt.axis([0, 6, 0, 20])
    plt.show()
    
    展开全文
  • python绘图.zip

    2021-06-20 13:46:42
    python绘图源代码
  • python绘图示例

    2018-07-30 20:41:34
    简单的python绘图示例 。
  • 奥运五环python绘图

    2021-07-09 21:30:11
    奥运五环python绘图
  • 主要介绍了python绘图方法,实例分析了Python的绘图技巧,涉及Python中matplotlib模块的使用方法,需要的朋友可以参考下
  • 详解Python绘图Turtle库

    2020-09-18 14:02:47
    Turtle库是Python语言中一个很流行的绘制图像的函数库,这篇文章主要介绍了Python绘图Turtle库的相关知识,需要的朋友可以参考下
  • Python绘图板练习 Python绘图板练习
  • 今天小编就为大家分享一篇Python绘图实现显示中文,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python绘图,横坐标范围比较大,一百万吧,然后自动就变成了科学计数的形式

    python绘图,横坐标范围比较大,一百万吧,然后自动就变成了科学计数的形式

    然后某大神给出来的解决办法:

    ax.get_xaxis().get_major_formatter().set_scientific(False)

    ax是个子图,所以要使用定义子图的方式

    网上搜各种绘图小细节,总会涉及到底是fig来做还是ax还是plt,所以就大致总结一个比较舒服的一致的习惯的绘图代码,方便各种操作:

    定义的时候采用:

    fig, ax = plt.subplots()
    
    # fig = plt.figure()
    # ax = fig.add_subplot(1, 1, 1)

    这句话和下面注释是等价的,所以subplots()里的参数就可以填figure()的和add_subplot()的,我觉得注释里的两句比较好理解,第一句创建一个图,第二句在图上add一个子图。

    ax.set_xlim(0, 1000000)
    ax.plot(sampletime, samplelist, 'g-', linewidth=0.5)
    ax.set_title('IA')
    ax.set_xlabel('sample/ms')
    ax.set_ylabel('IA/ms')
    fig.savefig("picture\\IA1.png", dpi=300)
    fig.show()

    然后以ax为对象去做各种设置,一般都是set_xxx()的形式

    展开全文
  • mataplotlib --- 绘制精美的图标 ...它提供了一套和MATLAB相类似的绘图函数集,特别适合在用短小的一段代码来实现一个图标的绘制,但也是一个与Python其他函数库协调工作,并且可以完美的支持相关Python的各种库函数。

    mataplotlib --- 绘制精美的图标  

    在Python的作图软件中有跟多可以做图形的开源软件包,但是在这些软件中的各有各的特点,今天的mataplotlib 是一个特别强大的一个软件。它提供了一套和MATLAB相类似的绘图函数集,特别适合在用短小的一段代码来实现一个图标的绘制,但也是一个与Python其他函数库协调工作,并且可以完美的支持相关Python的各种库函数。

     

    展开全文
  • Python绘图相关知识

    万次阅读 2019-04-12 09:51:45
    Python绘图 本文是基于Win 10系统环境,演示python绘图工具: Windows 10 PyCharm for Linux python 3.6.8 for Linux 1. 绘制二维简单图像 使用matplotlib工具集,绘制sin(x)和cos(x)函数图像 import numpy as ...
  • Python绘图解决中文显示乱码问题 解决方法出自《对比Excel,轻松学习python数据分析》 plt.rcParams['font.sans-serif']='simHei'#seiHei:好像是代表宋体的意思 写于2019-11-15,上海 喜欢可以关注【小猪课堂】...
  • python绘图网络包

    2015-01-25 14:10:11
    python绘图网络包 资源及其安装说明
  • 主要介绍了python绘图模块matplotlib示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 主要介绍了Python 绘图和可视化详细介绍的相关资料,需要的朋友可以参考下
  • Python绘图matplotlib

    2017-11-15 10:44:43
    使用Python的matplotlib库绘图,包括折线图、条形图、饼图的绘制,数据存储在列表中!
  • 主要介绍了Python绘图之柱形图绘制详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • python绘图 添加文字Adding text to a plot is one of the most used features of matplotlib.pyplot and there is a function defined for this operation i.e. matplotlib.pyplot.text(). 将文本添加到绘图是...
  • python绘图四叶草

    千次阅读 2020-02-17 15:11:48
    本篇文章介绍了python使用turtle库绘制四叶草的方法...python绘图四叶草 import turtle def draw_shapes(): window = turtle.Screen() window.bgcolor("red") flower = turtle.Turtle() flower.speed(10) ...
  • python turtle模块即海龟绘图的使用方法,对于需要进行图形编程会有一定的借鉴价值。python turtle模块简介:python2.6版本中引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics)1、.使用海龟绘图首先我们需要...
  • Python绘图案例.zip

    2021-01-24 19:03:50
    Python写的绘图例子
  • Python 绘图 Matplotlib 快速参考手册.pdf
  • Matplotlib是一个综合库,用于在Python中创建静态,动画和交互式可视化。 请查看我们的主页以获取更多信息。 Matplotlib以各种形式生成具有出版物质量的图形Matplotlib是一个综合库,用于在Python中创建静态,动画和...
  • Python绘图 二维、三维.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,045
精华内容 32,018
关键字:

python绘图

python 订阅