精华内容
下载资源
问答
  • 今天小编就为大家分享一篇python 二维、三维之间的线段实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这...

    最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~)
    one 樱花树

    • 动态生成樱花
      效果图(这个是动态的):
      在这里插入图片描述实现代码
    import turtle as T
    import random
    import time
    
    # 画樱花的躯干(60,t)
    def Tree(branch, t):
        time.sleep(0.0005)
        if branch > 3:
            if 8 <= branch <= 12:
                if random.randint(0, 2) == 0:
                    t.color('snow')  # 白
                else:
                    t.color('lightcoral')  # 淡珊瑚色
                t.pensize(branch / 3)
            elif branch < 8:
                if random.randint(0, 1) == 0:
                    t.color('snow')
                else:
                    t.color('lightcoral')  # 淡珊瑚色
                t.pensize(branch / 2)
            else:
                t.color('sienna')  # 赭(zhě)色
                t.pensize(branch / 10)  # 6
            t.forward(branch)
            a = 1.5 * random.random()
            t.right(20 * a)
            b = 1.5 * random.random()
            Tree(branch - 10 * b, t)
            t.left(40 * a)
            Tree(branch - 10 * b, t)
            t.right(20 * a)
            t.up()
            t.backward(branch)
            t.down()
    
    # 掉落的花瓣
    def Petal(m, t):
        for i in range(m):
            a = 200 - 400 * random.random()
            b = 10 - 20 * random.random()
            t.up()
            t.forward(b)
            t.left(90)
            t.forward(a)
            t.down()
            t.color('lightcoral')  # 淡珊瑚色
            t.circle(1)
            t.up()
            t.backward(a)
            t.right(90)
            t.backward(b)
    
    # 绘图区域
    t = T.Turtle()
    # 画布大小
    w = T.Screen()
    t.hideturtle()  # 隐藏画笔
    t.getscreen().tracer(5, 0)
    w.screensize(bg='wheat')  # wheat小麦
    t.left(90)
    t.up()
    t.backward(150)
    t.down()
    t.color('sienna')
    
    # 画樱花的躯干
    Tree(60, t)
    # 掉落的花瓣
    Petal(200, t)
    w.exitonclick()
    
    
    • 飘落效果
      效果图:
      在这里插入图片描述代码:
    from turtle import *
    from random import *
    from math import *
    
    def tree(n,l):
        pd()#下笔
        #阴影效果
        t = cos(radians(heading()+45))/8+0.25
        pencolor(t,t,t)
        pensize(n/3)
        forward(l)#画树枝
    
        if n>0:
            b = random()*15+10 #右分支偏转角度
            c = random()*15+10 #左分支偏转角度
            d = l*(random()*0.25+0.7) #下一个分支的长度
            #右转一定角度,画右分支
            right(b)
            tree(n-1,d)
            #左转一定角度,画左分支
            left(b+c)
            tree(n-1,d)
            #转回来
            right(c)
        else:
            #画叶子
            right(90)
            n=cos(radians(heading()-45))/4+0.5
            pencolor(n,n*0.8,n*0.8)
            circle(3)
            left(90)
            #添加0.3倍的飘落叶子
            if(random()>0.7):
                pu()
                #飘落
                t = heading()
                an = -40 +random()*40
                setheading(an)
                dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2)
                forward(dis)
                setheading(t)
                #画叶子
                pd()
                right(90)
                n = cos(radians(heading()-45))/4+0.5
                pencolor(n*0.5+0.5,0.4+n*0.4,0.4+n*0.4)
                circle(2)
                left(90)
                pu()
                #返回
                t=heading()
                setheading(an)
                backward(dis)
                setheading(t)
        pu()
        backward(l)#退回
    
    bgcolor(0.5,0.5,0.5)#背景色
    ht()#隐藏turtle
    speed(0)#速度 1-10渐进,0 最快
    tracer(0,0)
    pu()#抬笔
    backward(100)
    left(90)#左转90度
    pu()#抬笔
    backward(300)#后退300
    tree(12,100)#递归7层
    done()
    
    • 暗色效果
      效果:
      在这里插入图片描述
      代码
    from turtle import *
    from random import *
    from math import *
    
    def tree(n, l):
        pd()
        t = cos(radians(heading() + 45)) / 8 + 0.25
        pencolor(t, t, t)
        pensize(n / 4)
        forward(l)
        if n > 0:
            b = random() * 15 + 10
            c = random() * 15 + 10
            d = l * (random() * 0.35 + 0.6)
            right(b)
            tree(n - 1, d)
            left(b + c)
            tree(n - 1, d)
            right(c)
        else:
            right(90)
            n = cos(radians(heading() - 45)) / 4 + 0.5
            pencolor(n, n, n)
            circle(2)
            left(90)
        pu()
        backward(l)
    bgcolor(0.5, 0.5, 0.5)
    ht()
    speed(0)
    tracer(0, 0)
    left(90)
    pu()
    backward(300)
    tree(13, 100)
    done()
    

    two 玫瑰花
    效果(有绘制过程)
    在这里插入图片描述代码

    
    
    from turtle import *
    import time
    
    setup(1000,800,0,0)
    speed(0)
    penup()
    seth(90)
    fd(340)
    seth(0)
    pendown()
    
    speed(5)
    begin_fill()
    fillcolor('red')
    circle(50,30)
    
    for i in range(10):
        fd(1)
        left(10)
    
    circle(40,40)
    
    for i in range(6):
        fd(1)
        left(3)
    
    circle(80,40)
    
    for i in range(20):
        fd(0.5)
        left(5)
    
    circle(80,45)
    
    for i in range(10):
        fd(2)
        left(1)
    
    circle(80,25)
    
    for i in range(20):
        fd(1)
        left(4)
    
    circle(50,50)
    
    time.sleep(0.1)
    
    circle(120,55)
    
    speed(0)
    
    seth(-90)
    fd(70)
    
    right(150)
    fd(20)
    
    left(140)
    circle(140,90)
    
    left(30)
    circle(160,100)
    
    left(130)
    fd(25)
    
    penup()
    right(150)
    circle(40,80)
    pendown()
    
    left(115)
    fd(60)
    
    penup()
    left(180)
    fd(60)
    pendown()
    
    end_fill()
    
    right(120)
    circle(-50,50)
    circle(-20,90)
    
    speed(1)
    fd(75)
    
    speed(0)
    circle(90,110)
    
    penup()
    left(162)
    fd(185)
    left(170)
    pendown()
    circle(200,10)
    circle(100,40)
    circle(-52,115)
    left(20)
    circle(100,20)
    circle(300,20)
    speed(1)
    fd(250)
    
    penup()
    speed(0)
    left(180)
    fd(250)
    circle(-300,7)
    right(80)
    circle(200,5)
    pendown()
    
    left(60)
    begin_fill()
    fillcolor('green')
    circle(-80,100)
    right(90)
    fd(10)
    left(20)
    circle(-63,127)
    end_fill()
    
    penup()
    left(50)
    fd(20)
    left(180)
    
    pendown()
    circle(200,25)
    
    penup()
    right(150)
    
    fd(180)
    
    right(40)
    pendown()
    begin_fill()
    fillcolor('green')
    circle(-100,80)
    right(150)
    fd(10)
    left(60)
    circle(-80,98)
    end_fill()
    
    penup()
    left(60)
    fd(13)
    left(180)
    
    pendown()
    speed(1)
    circle(-200,23)
    
    
    
    exitonclick()
    

    three 圣诞树

    • 圣诞树 (动态生成效果)
      在这里插入图片描述
      代码:
    from turtle import *
    import random
    import time
    
    n = 100.0
    
    speed("fastest")
    screensize(bg='seashell')
    left(90)
    forward(3*n)
    color("orange", "yellow")
    begin_fill()
    left(126)
    
    for i in range(5):
        forward(n/5)
        right(144)
        forward(n/5)
        left(72)
    end_fill()
    right(126)
    
    color("dark green")
    backward(n*4.8)
    def tree(d, s):
        if d <= 0: return
        forward(s)
        tree(d-1, s*.8)
        right(120)
        tree(d-3, s*.5)
        right(120)
        tree(d-3, s*.5)
        right(120)
        backward(s)
    tree(15, n)
    backward(n/2)
    
    for i in range(200):
        a = 200 - 400 * random.random()
        b = 10 - 20 * random.random()
        up()
        forward(b)
        left(90)
        forward(a)
        down()
        if random.randint(0, 1) == 0:
                color('tomato')
        else:
            color('wheat')
        circle(2)
        up()
        backward(a)
        right(90)
        backward(b)
    
    time.sleep(60)
    
    

    未完待续!

    展开全文
  • python画桃心表白

    万次阅读 多人点赞 2019-11-26 16:37:36
    python用turtle简单图案比较方便,大一学python的turtle模块时,记得要各种图案,如国旗,桃心等等图案,期末课程设计时有可能还会遇到54张扑克牌,当初室友就被迫选了这道题。有时候程序猿遇到自己悄悄喜欢的...

    python用turtle画简单图案比较方便,大一学python的turtle模块时,记得要画各种图案,如国旗,桃心等等图案,期末课程设计时有可能还会遇到画54张扑克牌,当初室友就被迫选了这道题。有时候程序猿遇到自己悄悄喜欢的女生又不敢表白,那么就用turtle来实现表白吧!!!!!!!下面是程序。

    import turtle
    import time
    def LittleHeart():
        for i in range(200):
            turtle.right(1)
            turtle.forward(2)
    isLove=input('你会一直爱她吗?(Y or N)\n')
    
    run =1
    while(run):
        if isLove=="Y":
            me=""
            love=""
            if love=='': 
                love=' 草莓 I love you'
            turtle.setup(width=900, height=500)
            turtle.color('red','red')
            turtle.pensize(3)
            turtle.speed(50)
            turtle.up()
            turtle.hideturtle()
            turtle.goto(0,-180)
            turtle.showturtle()
            turtle.down()
            turtle.speed(5)
            turtle.begin_fill()
            turtle.left(140)
            turtle.forward(224)
            LittleHeart()
            turtle.left(120)
            LittleHeart()
            turtle.forward(224)
            turtle.end_fill()
            turtle.pensize(5)
            turtle.up()
            turtle.hideturtle()
            turtle.goto(0,0)
            turtle.showturtle()
            turtle.color('#CD5C5C','blue')
            turtle.write(love,font=('gungsuh',30,),align="center")
            turtle.up()
            turtle.hideturtle()
            if me !='':
                turtle.color('yellow', 'red')
                time.sleep(2)
            turtle.goto(180,-180)
            turtle.showturtle()
            turtle.write(me, font=(20,), align="center", move=True)
            window=turtle.Screen()
            window.exitonclick()
            run =0
    
           
        else:
             print("活该单身一辈子")
             print("!!!!!!!!!再给你一次机会!!!!!!!!")
             isLove=input('你会一直爱她吗?(Y or N)\n')
             continue
    

    运行结果:

     

     

     

     

    附诗一首:

                                    《咏梅》

     

                                                            王家有梅初长成,

                                                            朝夕相伴卷舒开,

                                                            梅花冰洁伴幽香,

                                                            我看容颜胜国香,

                                                            爱上暗香君莫笑,

                                                            你若见梅亦痴呆。

     

     

    展开全文
  • 一次性掌握所有 Python 画图基础操作

    万次阅读 多人点赞 2019-12-22 16:01:08
    除此之外,画图最主要的分类就是画点还是将点连线,如果使用 scatter 函数,则将散点画在图中;如果使用 plot 函数,则会将散点连线,在下文中,读者将会更深刻地感受到这一点。 图像加载 # plt.tight_layout() # ...

    p y t h o n python python 画图介绍 嘿!彩蛋!感觉有帮助就三连呗!

    本文以实用为第一目标,保证读者在看完此文之后可以迅速上手 p y t h o n python python 画图,掌握所有画图的基本技巧。(收藏的同时点个赞呗ヽ(•̀ω•́ )ゝ)

    如果你对这篇文章可感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。

    库加载

    我们使用 matplotlib 来进行 p y t h o n python python 画图,具体的库加载以及初始设置代码如下所示。

    import numpy as np	# 加载数学库用于函数描述
    import matplotlib
    import matplotlib.pyplot as plt
    from matplotlib import style
    
    matplotlib.rcParams['text.usetex'] = True  # 开启Latex风格
    plt.figure(figsize=(10, 10), dpi=70)  # 设置图像大小
    # style.use('ggplot')  # 加载'ggplot'风格
    # f, ax = plt.subplots(1, 3)  # 设置子图
    

    每一段代码都有注释,可以根据注释把握每行代码的内容。看不懂也没有关系,先把代码加上,继续往下看即可。

    p y t h o n python python 画图的原理

    其实原理非常简单,就是给出一个横坐标的 l i s t list list,再给出一个对应的纵坐标 l i s t list list,然后设置点大小、点外框大小、线大小、点颜色、线颜色、点形状、线形状、标题、标签即可。设置部分的内容看起来很多,但其实也可以不用设置,不设置就代表使用默认的大小、形状以及颜色。

    除此之外,画图最主要的分类就是画点还是将点连线,如果使用 scatter 函数,则将散点画在图中;如果使用 plot 函数,则会将散点连线,在下文中,读者将会更深刻地感受到这一点。

    图像加载

    # plt.tight_layout() # 当有多个子图时,可以使用该语句保证各子图标题不会重叠
    # plt.savefig('myplot1.pdf', dpi=700) # dpi 表示以高分辨率保存一个图片文件,pdf为文件格式,输出位图文件
    plt.show() # 渲染图片
    

    上述的代码中主要就是 plt.show() 语句,其余语句都是一些其余设置,看注释即可明白。

    画图分类

    python 中画图主要分为下述几类。

    • 画单点
    • 画散点
    • 画散点连线
    • 画函数

    主要涉及到的一些 操作 分为下述几类。

    • 子图
    • 设置横纵坐标范围
    • 图像标题
    • 图像中画图类型的标签

    画单点

    画单点比较简单,给出下述代码以及返回结果即可掌握。(需要加入最开头给出的初始设置内容)

    def main():
        X = 1
        Y = 100
        plt.scatter(X, Y, s=50)	// s为点大小
        plt.show()
    

    Alt
    上图是加载了 style.use('ggplot') 该风格后的效果,如果去掉该行,输出将如下所示。
    在这里插入图片描述
    读者可以根据自己的喜好选择该风格,也可以去搜索其他的风格,下文接下来的示例将均使用 'ggplot' 风格进行展示。


    画散点

    知道了画单点的方法之后,画散点就变得非常简单,因为我们只需要将单点中传入的单变量改成一个 l i s t list list 即可,具体代码和效果如下所示。

    def main():
        X, Y = [], []
        for i in range(1, 10):
            X.append(i)
            Y.append(np.sin(i))
        plt.scatter(X, Y, s=50)
        plt.show()
    

    在这里插入图片描述


    散点连线

    只有散点,通常会使得图像变得不够直观,因此我们使用 plot 函数将所有散点连在一起,具体操作如下所示。

    def main():
        X, Y = [], []
        for i in range(1, 10):
            X.append(i)
            Y.append(np.sin(i))
        plt.plot(X, Y, s=50)
        plt.show()
    

    在这里插入图片描述

    我们也可以对 plot 函数进行设置,即可输出如下所示图形。

    def main():
        X, Y = [], []
        for i in range(1, 10):
            X.append(i)
            Y.append(np.sin(i))
        plt.plot(X, Y, '-p', color='grey',
            marker = 'o',
            markersize=8, linewidth=2,
            markerfacecolor='red',
            markeredgecolor='grey',
            markeredgewidth=2)
        plt.show()
    

    在这里插入图片描述
    可以看到我们对于点大小、颜色、点外框颜色、大小以及线颜色、线宽均进行了设置,读者可以自行选择设置选项进行尝试。


    画函数

    尽管散点连线了,但是由于散点的密度不够大,因此我们可以进一步的使用
    只有散点,通常会使得图像变得不够直观,因此我们使用 plot 函数将所有散点连在一起,具体操作如下所示。

    def main():
        X = np.linspace(1, 10, 100)	# 将[1,10]区间均分为100个点,得到100个横坐标
        Y = np.sin(X) # 求出100个点的纵坐标
        plt.plot(X, Y, color="red", linewidth=1.0, linestyle="-") # 将100个散点连在一起
        plt.show()
    

    在这里插入图片描述

    线条形状、颜色、标签

    在画函数中我们可以设置线条形状 linestyle 、线条宽度 linewidth 以及线条颜色 color。我们接下来介绍常见的几种线条形状以及如何给线条加上标签,并给出具体的代码供读者参考。

    def main():
        X = np.linspace(1, 10, 100)
        Y1 = np.sin(X)
        Y2 = np.cos(X)
        Y3 = -X
        Y4 = X
        plt.plot(X, Y1, color="lightcoral", linewidth=3.0, linestyle="-", label="-")
        plt.plot(X, Y2, color="burlywood", linewidth=3.0, linestyle="--", label="--")
        plt.plot(X, Y3, color="mediumturquoise", linewidth=3.0, linestyle="-.", label="-.")
        plt.plot(X, Y4, color="mediumpurple", linewidth=3.0, linestyle=":", label=":")
        plt.legend(loc="best") # 把标签加载到图中哪个位置
        plt.show()
    

    常见的 linestyle 还有 '-', '--', '-.', ':', 'solid', 'dashed', 'dashdot', 'dotted',读者可以自行尝试。
    常见的 legendloc 位置还有 best, upper right, upper left, lower left, lower right, right, center left, center right, lower center, upper center, center,其中 best 表示将标签加载到 python 认为最佳的位置。
    在这里插入图片描述

    支持 Latex 的标签

    由于是函数作图,因此我们通常会将标签设置为线条所代表的函数值,因此我们需要介绍支持 Latex 的标签。我们将 label 的数值设置为 r'$x_n$' 即可支持 L a t e x Latex Latex,如下图所示。

    def main():
        X = np.linspace(0, 1, 100)
        Y1 = np.sqrt(X)
        Y2 = X
        Y3 = X * X
        Y4 = X * X * X
        plt.plot(X, Y1, color="lightcoral", linewidth=3.0, linestyle="-", label=r"$y_1=\sqrt{x}$")
        plt.plot(X, Y2, color="burlywood", linewidth=3.0, linestyle="--", label=r"$y_2=x$")
        plt.plot(X, Y3, color="mediumturquoise", linewidth=3.0, linestyle="-.", label=r"$y_3=x^2$")
        plt.plot(X, Y4, color="mediumpurple", linewidth=3.0, linestyle=":", label=r"$y_4=x^3$")
        plt.legend(loc="best")
        plt.show()
    

    在这里插入图片描述

    设置横纵坐标标号以及图像标题

    最后我们需要介绍如何给该图像设置横纵坐标、范围以及标题。我们首先不设置范围,则具体代码以及输出图形如下。

    def main():
        X = np.linspace(0, 1, 100)
        Y1 = np.sqrt(X)
        Y2 = X
        Y3 = X * X
        Y4 = X * X * X
        plt.plot(X, Y1, color="lightcoral", linewidth=3.0, linestyle="-", label=r"$y_1=\sqrt{x}$")
        plt.plot(X, Y2, color="burlywood", linewidth=3.0, linestyle="--", label=r"$y_2=x$")
        plt.plot(X, Y3, color="mediumturquoise", linewidth=3.0, linestyle="-.", label=r"$y_3=x^2$")
        plt.plot(X, Y4, color="mediumpurple", linewidth=3.0, linestyle=":", label=r"$y_4=x^3$")
        plt.legend(loc="best")
    
        # x、y坐标以及标题
        plt.xlabel('x', fontsize=18)
        plt.ylabel('y', fontsize=18)
        plt.title(r'$f(x)=\sqrt{x},x,x^2,x^3$', fontsize=18)
        plt.show()
    

    在这里插入图片描述

    设置横纵坐标的范围

    有的时候我们会觉得系统默认的横纵坐标范围不合适,因此我们需要自行设置横纵坐标,具体代码以及结果如下所示。

    def main():
        X = np.linspace(0, 2, 100)
        Y1 = np.sqrt(X)
        Y2 = X
        Y3 = X * X
        Y4 = X * X * X
        plt.plot(X, Y1, color="lightcoral", linewidth=3.0, linestyle="-", label=r"$y_1=\sqrt{x}$")
        plt.plot(X, Y2, color="burlywood", linewidth=3.0, linestyle="--", label=r"$y_2=x$")
        plt.plot(X, Y3, color="mediumturquoise", linewidth=3.0, linestyle="-.", label=r"$y_3=x^2$")
        plt.plot(X, Y4, color="mediumpurple", linewidth=3.0, linestyle=":", label=r"$y_4=x^3$")
        plt.legend(loc="best")
    
        # x、y坐标以及标题
        plt.xlabel('x', fontsize=18)
        plt.ylabel('y', fontsize=18)
        plt.title(r'$f(x)=\sqrt{x},x,x^2,x^3$', fontsize=18)
    
        # 设置坐标范围
        plt.ylim(-1, 4)
        plt.xlim(-1, 4)
        plt.show()
    

    在这里插入图片描述

    给函数中的一个点标号

    当函数比较复杂的时候,我们往往需要对关键点进行标号,通常使用的方式是加箭头或者不加,我们先给出加箭头的代码以及结果。

    def main():
        X = np.linspace(0, 1, 100)
        Y1 = np.sqrt(X)
        Y2 = X
        Y3 = X * X
        Y4 = X * X * X
        plt.plot(X, Y1, color="lightcoral", linewidth=3.0, linestyle="-", label=r"$y_1=\sqrt{x}$")
        plt.plot(X, Y2, color="burlywood", linewidth=3.0, linestyle="--", label=r"$y_2=x$")
        plt.plot(X, Y3, color="mediumturquoise", linewidth=3.0, linestyle="-.", label=r"$y_3=x^2$")
        plt.plot(X, Y4, color="mediumpurple", linewidth=3.0, linestyle=":", label=r"$y_4=x^3$")
        plt.legend(loc="best")
    
        # x、y坐标以及标题
        plt.xlabel('x', fontsize=18)
        plt.ylabel('y', fontsize=18)
        plt.title(r'$f(x)=\sqrt{x},x,x^2,x^3$', fontsize=18)
    
    	# 关键点标号
        plt.scatter(1, 1, s=100)
        plt.ylim(-1, 2)
        plt.annotate('End Point', fontsize=20,
                     xy=(1, 1), xycoords='data',
                     xytext=(0.8, 0.95), textcoords='axes fraction',
                     arrowprops=dict(facecolor='black', shrink=0.1),
                     horizontalalignment='right', verticalalignment='top')
        plt.show()
    

    其中 xy(1,1) 表示关键点的位置,xycoords='data' 表示关键点坐标所采用的坐标方式, shrink 参数表示箭头距离关键点的距离,horizontalalignment='right', verticalalignment='top' 均表示注释的位置。
    在这里插入图片描述
    也可以使用不加箭头的方式,即将上述 annotate 换成下述代码即可。

    	# 关键点标号
    	plt.scatter(1, 1, s=100)
    	plt.ylim(-0.1, 1.3)
    	plt.xlim(-0.1, 1.3)
    	plt.annotate("End Point",
    	             xy=(1.05, 1.05),
    	             fontsize=20,
    	             xycoords="data")
    

    在这里插入图片描述

    色卡

    当绘制多个函数时,会发现颜色的设计非常难把握,因此下图给出一张色卡供颜色选择。
    在这里插入图片描述


    子图

    最后是如何用 python 画子图,其实画子图就是将上述的 p l t plt plt 换成 a x ax ax,具体操作的思路与之前的操作并没有太大的区别,接下来给出一个包含横纵坐标、函数坐标、标题的完整子图代码,读者可以从代码中获取相应操作的代码。

    在这里插入图片描述

    import numpy as np
    import matplotlib
    import matplotlib.pyplot as plt
    from matplotlib import style
    
    style.use('ggplot')  # 加载'ggplot'风格
    matplotlib.rcParams['text.usetex'] = True  # 开启Latex风格
    plt.figure(figsize=(10, 10), dpi=70)  # 设置图像大小
    f, ax = plt.subplots(2, 2)  # 设置子图
    
    
    def func1():
        X = np.linspace(0, 1, 100)
        Y1 = np.sqrt(X)
        # ax[0][0]的设置
        ax[0][0].plot(X, Y1, color="lightcoral", linewidth=3.0, linestyle="-", label=r"$y_1=\sqrt{x}$")
        ax[0][0].set_xlabel('x', fontsize=10)
        ax[0][0].set_ylabel('y', fontsize=10)
        ax[0][0].set_title(r'$f(x)=\sqrt{x}$', fontsize=16)
        ax[0][0].legend(loc="best")
    
        # ax[0][0]关键点
        ax[0][0].scatter(0.5, np.sqrt(0.5), s=100)
        ax[0][0].annotate("End Point",
                          xy=(0.6, 0.5),
                          fontsize=12,
                          xycoords="data")
    
    
    def func2():
        X = np.linspace(0, 1, 100)
        Y2 = X
        # ax[0][1]的设置
        ax[0][1].plot(X, Y2, color="burlywood", linewidth=3.0, linestyle="--", label=r"$y_2=x$")
        ax[0][1].set_xlabel('x', fontsize=10)
        ax[0][1].set_ylabel('y', fontsize=10)
        ax[0][1].set_title(r'$f(x)=x$', fontsize=16)
        ax[0][1].legend(loc="best")
    
        # ax[0][1]关键点
        ax[0][1].scatter(0.5, 0.5, s=100)
        ax[0][1].annotate("End Point",
                          fontsize=12,
                          xytext=(0.7, 0.1),
                          xy=(0.5, 0.5),
                          xycoords="data",
                          arrowprops=dict(facecolor='gray', shrink=0.15))
    
    
    def func3():
        X = np.linspace(0, 1, 100)
        Y3 = X * X
        # ax[1][0]的设置
        ax[1][0].plot(X, Y3, color="mediumturquoise", linewidth=3.0, linestyle="-.", label=r"$y_3=x^2$")
        ax[1][0].set_xlabel('x', fontsize=10)
        ax[1][0].set_ylabel('y', fontsize=10)
        ax[1][0].set_title(r'$f(x)=x^2$', fontsize=16)
        ax[1][0].legend(loc="best")
    
        # ax[1][0]关键点
        ax[1][0].scatter(0.5, 0.5 * 0.5, s=100)
        ax[1][0].annotate("End Point",
                          fontsize=12,
                          xytext=(0.05, 0.6),
                          xy=(0.5, 0.5 * 0.5),
                          xycoords="data",
                          arrowprops=dict(facecolor='black', shrink=0.1))
    
    
    def func4():
        X = np.linspace(0, 1, 100)
        Y4 = X * X * X
        # ax[1][1]的设置
        ax[1][1].plot(X, Y4, color="mediumpurple", linewidth=3.0, linestyle=":", label=r"$y_4=x^3$")
        ax[1][1].set_xlabel('x', fontsize=10)
        ax[1][1].set_ylabel('y', fontsize=10)
        ax[1][1].set_title(r'$f(x)=x^3$', fontsize=16)
        ax[1][1].legend(loc="best")
    
        # ax[1][1]关键点
        ax[1][1].scatter(0.5, 0.5 * 0.5 * 0.5, s=100)
        ax[1][1].annotate("End Point",
                          xy=(0.2, 0.3),
                          fontsize=12,
                          xycoords="data")
    
    
    def main():
        func1()
        func2()
        func3()
        func4()
    
        plt.tight_layout()  # 当有多个子图时,可以使用该语句保证各子图标题不会重叠
        plt.savefig('myplot1.pdf', dpi=700)  # dpi 表示以高分辨率保存一个图片文件,pdf为文件格式,输出位图文件
        plt.show()
    
    
    if __name__ == "__main__":
        main()
    
    

    另外,也可以使用 plt.sca() 来定位子图,如下述例子:

    f, ax = plt.subplots(2, 3, figsize=(15, 10)) # 声明 2 行 3 列的子图
    f.suptitle("设置总标题", fontsize=18)
    
    plt.sca(ax[0, 1]) # 定位到第 1 行第 2 列的子图
    # 接下来直接使用 plt 画图即可
    

    后记

    上述所涉及的内容即为 p y t h o n python python 应用 matplotlib 画图的基本操作了,如果想要进一步的深化画图能力,推荐根据需求在 matplotlib 官方文档 中进行搜索。祝大家在 python 画图的路上更进一步!💪💪💪

    展开全文
  • Python 用 OpenCV 画点和圆 (2)

    万次阅读 多人点赞 2018-11-10 21:20:21
    利用 opencv 里自带的circle() 函数可以绘制以一个为圆心特定半径的圆,其函数的声明如下: cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]]) 函数参数含义如下: img:要的圆所在...

    利用 opencv 里自带的 circle() 函数可以绘制以一个点为圆心特定半径的圆,其函数的声明如下:

    cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])
    

    函数参数含义如下:

    • img:要画的圆所在的矩形或图像
    • center:圆心坐标,如 (100, 100)
    • radius:半径,如 10
    • color:圆边框颜色,如 (0, 0, 255) 红色,BGR
    • thickness:正值表示圆边框宽度. 负值表示画一个填充圆形
    • lineType:圆边框线型,可为 0,4,8
    • shift:圆心坐标和半径的小数点位数

    画点实际上就是画半径很小的实心圆,画点和画圆的完整代码如下:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    """
    @Time    : 2018-11-09 21:39
    @Author  : jianjun.wang
    @Email   : alanwang6584@gmail.com
    """
    
    import numpy as np
    import cv2 as cv
     
    img = np.zeros((320, 320, 3), np.uint8) #生成一个空灰度图像
    print img.shape # 输出:(480, 480, 3)
    
    point_size = 1
    point_color = (0, 0, 255) # BGR
    thickness = 4 # 可以为 0 、4、8
    
    # 要画的点的坐标
    points_list = [(160, 160), (136, 160), (150, 200), (200, 180), (120, 150), (145, 180)]
    
    for point in points_list:
    	cv.circle(img, point, point_size, point_color, thickness)
    
    # 画圆,圆心为:(160, 160),半径为:60,颜色为:point_color,实心线
    cv.circle(img, (160, 160), 60, point_color, 0)
    
    cv.namedWindow("image")
    cv.imshow('image', img)
    cv.waitKey (10000) # 显示 10000 ms 即 10s 后消失
    cv.destroyAllWindows()
    

    运行后效果如下:
    在这里插入图片描述

    原文英文文档
    本文地址

    Python 安装 OpenCV 及显示图像 (1)

    Python 用 OpenCV 画点和圆 (2)

    Python 用 OpenCV 画直线 (3)

    Python 用 OpenCV 画矩形 (4)

    Python 用 OpenCV 画椭圆 (5)

    Python 用 OpenCV 显示文字 (6)

    展开全文
  • Python画樱花树 !

    万次阅读 2019-08-23 15:23:29
    Python的turtle模块肯定很棒吧!这次,我们要利用turtle来完成一个樱花树的绘制。我们要用def和for语句循环。 难度等级: Python资源共享群:626017123 工具:turtle、random 我用的是Python 3.8.0b3Shell,...
  • python画散点图-python中画散点图

    千次阅读 2020-10-28 22:46:25
    projection='3d') # 创建一个三维的绘图工程# 将数据分成三部分,在颜色上有区分度ax.scatter(x[:10], y[:10], z[:10], c='y') # 绘制数据ax.scatter(x[10:20], y[10:20], z[10:20], c='r') ax.scatter(x[30:...
  • python点线图_Python | 线图

    千次阅读 2020-07-31 01:36:46
    python点线图A mixture of dot and line plot is called a Dot-Line plot. Each dot is connected through a line and it is the next version of the line plot. It maintains the discrete property of the points...
  • Python 画图,线图

    千次阅读 2021-01-29 19:11:40
    'lines.linewidth':2 , #线宽 'legend.fontsize': '27', #图例大小 'figure.figsize' : '12, 9' # set figure size,长12,宽9 } pylab.rcParams.update(params) #set figure parameter #图库更新 #line_styles=['...
  • Python 正方形

    万次阅读 2019-04-03 22:44:14
    正方形 import turtle #导入 turtle.title("正方形") turtle.pensize(5) #画笔大小为5 turtle.pencolor("red") #画笔颜色为红 turtle.fillcolor("green") #填充颜色为绿 turtle.begin_fill() #开始填充 ...
  • Python 星星图案

    千次阅读 多人点赞 2019-12-25 14:27:03
    Python画星星: import turtle as t t.goto(100,0) for i in range(50): t.left(80) t.fd(100) t.left(135) t.fd(105)
  • Python 樱花

    万次阅读 多人点赞 2019-09-27 19:23:09
    一....# 一棵樱花 import turtle import random from turtle import * from time import sleep # 樱花的躯干(60,t) def tree(branchLen,t): sleep(0.0005) if branchLen >3: if...
  • python画散点图、折线图

    千次阅读 2020-12-10 22:54:24
    Python-画图(散点图scatter、保存savefig)及颜色大全 import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False #...
  • Python--绘制

    千次阅读 2019-07-30 21:49:50
    scatter()绘制,删除绘制轮廓,设置颜色映射,保存图表 '''scatter()绘制''' #values = [1, 2, 3, 4, 5] #创建一个数组列表 #square = [1, 4, 9, 16, 25] values = list(range(1, 1001)) square = [x**2 for ...
  • python turtle 几株草

    千次阅读 2019-10-19 18:49:52
    python turtle 几株草 import turtle as tl import random as rd import math as mt def write(n, t): print(n) tl.pensize(mt.sqrt(n+1)/10) tl.pencolor(0.3, 0.9, 0.3) tl.right(50 / (n+1)) ...
  • 今天小编就为大家分享一篇python绘制已知的坐标的直线实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 如何用Python画画

    千次阅读 多人点赞 2020-02-22 18:18:22
    Python画画有两样东西必不可少:参数和函数 函数来自模块turtle模块 资料:模块的定义和导入模块 引用格式:import turtle as t 部分函数列总: turtle.pensize() 设置画笔尺寸 turtle.hideturtle() 隐藏画笔 t....
  • 使用Python绘画象棋棋盘(turtle)

    千次阅读 2019-07-29 18:14:53
    通过使用turtle绘画象棋棋盘 # 绘制象棋棋盘 import turtle t = turtle.Pen() t.width(2) # 设置画笔粗细 ...# 竖线 t.penup() t.goto(-400, -400) for i in range(9): t.pendown() if i != 0 and i ...
  • import matplotlib.pyplot as plt x_point = [2,-2] y_point = [2,-2] plt.scatter(x_point,y_point) plt.xlim(-10,10) #x坐标轴范围-10~10 plt.ylim(-10,10) #第一个参数为标记文本,第二个参数为标记对象的坐标,...
  • Python-OpenCV (2): 画点和圆

    千次阅读 2019-11-15 11:05:58
    利用 opencv 里自带的circle() 函数可以绘制以一个为圆心特定半径的圆,其函数的声明如下: cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]]) 函数参数含义如下: img:要的圆...
  • python实现用户画像

    2017-08-30 16:11:26
    利用python相关技术搭建的用户画像web轻量级应用
  • python ROC 曲线

    千次阅读 2018-10-16 10:31:22
    python ROC 曲线的实现代码 import numpy as np import matplotlib.pyplot as plt from sklearn.metrics import auc ###计算roc和auc import pandas as pd base = "D:\\WFLW\\wflw_blur_128\\ROC\\"...
  • python画散点图

    千次阅读 2017-10-12 15:05:41
    python画xy散点图 import matplotlib.pyplot as plt plt.plot([1,2,3],[4,5,6],'ro') plt.show()#这个智障的编辑器 这样的话,就可以画一个散点图,图中的分别是(1,4)、(2,5)、(3,6)。 ...
  • python turtle简易的太极图

    万次阅读 2019-01-27 12:46:39
    import turtle t=turtle.Turtle() t.penup() t.goto(0,-50)#设置起始坐标 t.pendown() t.begin_fill() t.fillcolor('black') ...t.circle(75,extent=180)#半径正负代表逆时针和顺时针 t.circle(-75,extent=180) ...
  • 使用Python画玫瑰花

    千次阅读 2019-03-30 21:48:00
    使用Python画玫瑰花 ''' Created on Nov 18, 2017 @author: QiZhao ''' import turtle # 设置初始位置 turtle.penup() turtle.left(90) turtle.fd(200) turtle.pendown() turt...
  • Python 一朵彩色玫瑰花. 要求有花朵和花茎,花叶... 花的颜色要求渐变.. 请大佬们帮帮忙喽
  • 最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 动态生成樱花 效果图(这个...
  • Python Turtle奥运标志

    千次阅读 2019-08-25 21:47:25
    Python Turtle奥运标志 最近了解了Python Turtle,非常简单有趣。为了培养小朋友兴趣,写个turtle奥运标志程序。 1. 画圆 turtle属于内置包,无需安装。只要导入即可以画图,下面先写几行代码画圆。 import ...
  • python如何散点图

    千次阅读 2018-11-20 20:50:14
    使用plt的scatter函数,这个是散点图的函数 plt.scatter(beer["sodium"], beer["cost"],c=colors[beer["cluster"]]) plt.scatter(centers.sodium, centers.cost, linewidths=3, ...
  • Python画红旗

    万次阅读 多人点赞 2019-01-27 18:16:44
    Python画五星红旗 第一步:导包 用Python自带的turtle包,直接导入 import turtle 画布设置 turtle.setup(width=0.9, height=0.9) turtle.bgcolor(“red”) # 画布背景颜色 turtle.fillcolor(“yellow”) #...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 210,139
精华内容 84,055
关键字:

python画点

python 订阅