精华内容
下载资源
问答
  • python画图线条和颜色

    万次阅读 2017-09-25 17:22:25
    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6117528.html 参考网址: http://stackoverflow.com/questions/22408237/named-colors-in-matplotlib ...

    转载请注明出处:

    http://www.cnblogs.com/darkknightzh/p/6117528.html

    参考网址:

    http://stackoverflow.com/questions/22408237/named-colors-in-matplotlib

    http://stackoverflow.com/questions/8409095/matplotlib-set-markers-for-individual-points-on-a-line

     

    代码:

    复制代码
    plt.subplots(1, 1)
    x= range(100)
    y= [i**2 for i in x]
    
    plt.plot(x, y, linewidth = '1', label = "test", color=' coral ', linestyle=':', marker='|')
    plt.legend(loc='upper left')
    plt.show()
    复制代码

    结果:

    说明:其实上面color=' coral '中,可以换成color=' #054E9F',每两个十六进制数分别代表R、G、B分量:

     

    第二个参考网址给出了linestyle可选参数:

    '-'       solid line style
    '--'      dashed line style
    '-.'      dash-dot line style
    ':'       dotted line style

    第二个参考网址给出了marker可选参数:

    复制代码
    '.'       point marker
    ','       pixel marker
    'o'       circle marker
    'v'       triangle_down marker
    '^'       triangle_up marker
    '<'       triangle_left marker
    '>'       triangle_right marker
    '1'       tri_down marker
    '2'       tri_up marker
    '3'       tri_left marker
    '4'       tri_right marker
    's'       square marker
    'p'       pentagon marker
    '*'       star marker
    'h'       hexagon1 marker
    'H'       hexagon2 marker
    '+'       plus marker
    'x'       x marker
    'D'       diamond marker
    'd'       thin_diamond marker
    '|'       vline marker
    '_'       hline marker
    复制代码

    第一个参考网址给出了matplotlib中color可用的颜色:

    复制代码
    cnames = {
    'aliceblue':            '#F0F8FF',
    'antiquewhite':         '#FAEBD7',
    'aqua':                 '#00FFFF',
    'aquamarine':           '#7FFFD4',
    'azure':                '#F0FFFF',
    'beige':                '#F5F5DC',
    'bisque':               '#FFE4C4',
    'black':                '#000000',
    'blanchedalmond':       '#FFEBCD',
    'blue':                 '#0000FF',
    'blueviolet':           '#8A2BE2',
    'brown':                '#A52A2A',
    'burlywood':            '#DEB887',
    'cadetblue':            '#5F9EA0',
    'chartreuse':           '#7FFF00',
    'chocolate':            '#D2691E',
    'coral':                '#FF7F50',
    'cornflowerblue':       '#6495ED',
    'cornsilk':             '#FFF8DC',
    'crimson':              '#DC143C',
    'cyan':                 '#00FFFF',
    'darkblue':             '#00008B',
    'darkcyan':             '#008B8B',
    'darkgoldenrod':        '#B8860B',
    'darkgray':             '#A9A9A9',
    'darkgreen':            '#006400',
    'darkkhaki':            '#BDB76B',
    'darkmagenta':          '#8B008B',
    'darkolivegreen':       '#556B2F',
    'darkorange':           '#FF8C00',
    'darkorchid':           '#9932CC',
    'darkred':              '#8B0000',
    'darksalmon':           '#E9967A',
    'darkseagreen':         '#8FBC8F',
    'darkslateblue':        '#483D8B',
    'darkslategray':        '#2F4F4F',
    'darkturquoise':        '#00CED1',
    'darkviolet':           '#9400D3',
    'deeppink':             '#FF1493',
    'deepskyblue':          '#00BFFF',
    'dimgray':              '#696969',
    'dodgerblue':           '#1E90FF',
    'firebrick':            '#B22222',
    'floralwhite':          '#FFFAF0',
    'forestgreen':          '#228B22',
    'fuchsia':              '#FF00FF',
    'gainsboro':            '#DCDCDC',
    'ghostwhite':           '#F8F8FF',
    'gold':                 '#FFD700',
    'goldenrod':            '#DAA520',
    'gray':                 '#808080',
    'green':                '#008000',
    'greenyellow':          '#ADFF2F',
    'honeydew':             '#F0FFF0',
    'hotpink':              '#FF69B4',
    'indianred':            '#CD5C5C',
    'indigo':               '#4B0082',
    'ivory':                '#FFFFF0',
    'khaki':                '#F0E68C',
    'lavender':             '#E6E6FA',
    'lavenderblush':        '#FFF0F5',
    'lawngreen':            '#7CFC00',
    'lemonchiffon':         '#FFFACD',
    'lightblue':            '#ADD8E6',
    'lightcoral':           '#F08080',
    'lightcyan':            '#E0FFFF',
    'lightgoldenrodyellow': '#FAFAD2',
    'lightgreen':           '#90EE90',
    'lightgray':            '#D3D3D3',
    'lightpink':            '#FFB6C1',
    'lightsalmon':          '#FFA07A',
    'lightseagreen':        '#20B2AA',
    'lightskyblue':         '#87CEFA',
    'lightslategray':       '#778899',
    'lightsteelblue':       '#B0C4DE',
    'lightyellow':          '#FFFFE0',
    'lime':                 '#00FF00',
    'limegreen':            '#32CD32',
    'linen':                '#FAF0E6',
    'magenta':              '#FF00FF',
    'maroon':               '#800000',
    'mediumaquamarine':     '#66CDAA',
    'mediumblue':           '#0000CD',
    'mediumorchid':         '#BA55D3',
    'mediumpurple':         '#9370DB',
    'mediumseagreen':       '#3CB371',
    'mediumslateblue':      '#7B68EE',
    'mediumspringgreen':    '#00FA9A',
    'mediumturquoise':      '#48D1CC',
    'mediumvioletred':      '#C71585',
    'midnightblue':         '#191970',
    'mintcream':            '#F5FFFA',
    'mistyrose':            '#FFE4E1',
    'moccasin':             '#FFE4B5',
    'navajowhite':          '#FFDEAD',
    'navy':                 '#000080',
    'oldlace':              '#FDF5E6',
    'olive':                '#808000',
    'olivedrab':            '#6B8E23',
    'orange':               '#FFA500',
    'orangered':            '#FF4500',
    'orchid':               '#DA70D6',
    'palegoldenrod':        '#EEE8AA',
    'palegreen':            '#98FB98',
    'paleturquoise':        '#AFEEEE',
    'palevioletred':        '#DB7093',
    'papayawhip':           '#FFEFD5',
    'peachpuff':            '#FFDAB9',
    'peru':                 '#CD853F',
    'pink':                 '#FFC0CB',
    'plum':                 '#DDA0DD',
    'powderblue':           '#B0E0E6',
    'purple':               '#800080',
    'red':                  '#FF0000',
    'rosybrown':            '#BC8F8F',
    'royalblue':            '#4169E1',
    'saddlebrown':          '#8B4513',
    'salmon':               '#FA8072',
    'sandybrown':           '#FAA460',
    'seagreen':             '#2E8B57',
    'seashell':             '#FFF5EE',
    'sienna':               '#A0522D',
    'silver':               '#C0C0C0',
    'skyblue':              '#87CEEB',
    'slateblue':            '#6A5ACD',
    'slategray':            '#708090',
    'snow':                 '#FFFAFA',
    'springgreen':          '#00FF7F',
    'steelblue':            '#4682B4',
    'tan':                  '#D2B48C',
    'teal':                 '#008080',
    'thistle':              '#D8BFD8',
    'tomato':               '#FF6347',
    'turquoise':            '#40E0D0',
    'violet':               '#EE82EE',
    'wheat':                '#F5DEB3',
    'white':                '#FFFFFF',
    'whitesmoke':           '#F5F5F5',
    'yellow':               '#FFFF00',
    'yellowgreen':          '#9ACD32'}
    复制代码

    上面对应的颜色:

    另外的显示方式:

    装了seaborn扩展的话,在字典seaborn.xkcd_rgb中包含所有的xkcd crowdsourced color names。如下:

    plt.plot([1,2], lw=4, c=seaborn.xkcd_rgb['baby poop green'])

    所有颜色如下:

     



    展开全文
  • python画图函数

    千次阅读 多人点赞 2019-05-31 16:56:49
    python画图函数

    python画图函数

    1.使用turtle模块

    import turtle
    

    2.画笔状态函数

    turtle.penup()		#提起画笔,移动之后不会绘制图形
    turtle.pendown()		#放下画笔,移动之后绘制图形,与penup()配套使用
    turtle.pensize(width)		#设置画笔线条的粗细,()中填数字,数字越大,笔越粗
    turtle.speed()			#设置画笔的速度,参数在0~10之间
    turtle.pencolor()		#设置笔的颜色
    turtle.color()		#设置笔的颜色和填充颜色
    turtle.begin_fill()		#填充图形前调用该函数
    turtle.end_fill()		#填充图形完毕
    turtle.filling()		#返回填充的状态,True为填充,False为未填充
    turtle.hideturtle()		#隐藏画笔
    turtle.showturtle()		#展现画笔
    turtle.isvisible()		#查看画笔是是否可见,如果可见,返回True
    

    3.窗口函数

    turtle.setup(width,height,startx,starty)			
    """
    wideth:窗口宽度。若为整数则代表像数值,小数则代表窗口宽度和屏幕的比例
    height:窗口高度。若为整数则代表像数值,小数则代表窗口宽度和屏幕的比例
    startx:窗口左侧和屏幕左侧的像素距离。值为None,窗体位于屏幕水平中央
    starty:窗口右侧和屏幕右侧的像素距离。值为None,窗口位于屏幕水平中央
    """
    turtle.screensize()			#设置窗口的高度,宽度和背景颜色
    turtle.clear()			#清空当前窗口,但不改变画笔的状态
    turtle.reset()			#清空当前窗口,同时重置位置等状态为默认值
    

    4.画笔运动函数

    turtle.forword()			#沿当前方向运动()个像素距离
    turtle.backword()			#沿当前相反的方向运动()个像素距离
    turtle.right(angle)			#向右旋转angle角度
    turtle.left(angle)			#向左旋转angle角度
    turtle.setheading(angle)			#设置当前朝向angle的方向
    turtle.goto(x,y)			#移动到(x,y)坐标处
    turtle.setx(x)			#画笔的横坐标修改到x,纵坐标不变
    turtle.sety(y)			#画笔的纵坐标修改到y,横坐标不变
    turtle.home()			#设置画笔位置为原点,方向朝向东
    turtle.circle(r,extent=None,step=None)			#绘制一个半径为r,角度为e的圆或者弧,steps为该圆的内切多边形,边数为steps
    turtle.undo()			#撤销画笔最后一步的操作
    turtle.dot(radius,e)			#绘制一个半径为r,颜色为e的圆点
    turtle.done()			#结束绘画
    

    5.turtle库的练习
    例一:一个for循环,打出一个好看的图形

    import turtle
    turtle.speed(0)
    turtle.color("red")
    for i in range(260):
        turtle.forward(i)
        turtle.right(160)
    turtle.done()
    

    在这里插入图片描述
    例二:用turtle程序来模仿在各自里随意行走,从中心位置开始,然后在边缘处的某点停下来。

    #格子
    import turtle
    import random
    turtle.speed(0)
    row=8  #行数
    col=8  #列数
    cell=40
    uplimit=(row//2)*cell  #上限
    downlimit=-(row//2)*cell  #下限
    leftlimit=-(col//2)*cell  #左限
    rightlimit=(col//2)*cell  #右限
    turtle.penup()
    turtle.goto(leftlimit,uplimit)
    turtle.pendown()
    """  
    #方法一 每小格法
    for i in range(1,9):
            for j in range(1,9):
                    for k in range(1,5):
                            turtle.forward(cell)
                            turtle.right(90)
                    turtle.forward(cell)
            turtle.penup()
            turtle.goto(leftlimit,uplimit-i*cell)
            turtle.pendown()
    #turtle.done() 
    """
    # 方法二 横竖线法
    for i in range(1,row+2):
            turtle.forward(col*cell)
            turtle.penup()
            turtle.goto(leftlimit,uplimit-i*cell)
            turtle.pendown()
    turtle.up()
    turtle.goto(leftlimit,uplimit)
    turtle.pendown()
    turtle.right(90)
    for j in range(1,col+2):
            turtle.forward(row*cell)
            turtle.penup()
            turtle.goto(leftlimit+j*cell,uplimit)
            turtle.pendown()
    
    turtle.penup()
    turtle.goto(0,0)
    turtle.pendown()
    turtle.pensize(5)
    x=0
    y=0
    while x!=leftlimit and y!=uplimit and y!=downlimit and x!=rightlimit:
        direction=random.randint(0,3)  #0东  1北  2西   3南
        if direction==0:
            x+=cell
        if direction==1:
            y+=cell
        if direction==2:
            x-=cell
        if direction==3:
            y-=cell
        turtle.setheading(direction*90)
        turtle.forward(cell)
        print(x,y)
    turtle.done()
    turtle.hideturtle()
    

    在这里插入图片描述
    在这里插入图片描述
    例三:不用write函数,打出lay

    import turtle
    #字母L
    turtle.penup()
    turtle.goto(-200,150)
    turtle.pendown()
    turtle.pensize(10)
    turtle.pencolor("yellow")
    turtle.goto(-220,-100)
    turtle.right(90)
    turtle.circle(50,150)
    # 字母a
    turtle.penup()
    turtle.goto(-50,20)
    turtle.pendown()
    turtle.pencolor("red")
    turtle.left(70)
    turtle.circle(55,280)
    turtle.penup()
    turtle.goto(-50,20)
    turtle.pendown()
    turtle.right(170)
    turtle.circle(70,90)
    # 字母y
    turtle.penup()
    turtle.goto(20,150)
    turtle.pendown()
    turtle.pencolor("blue")
    turtle.goto(10,70)
    turtle.right(50)
    turtle.circle(50,60)
    turtle.penup()
    turtle.goto(100,150)
    turtle.pendown()
    turtle.goto(80,-130)
    turtle.left(90)
    turtle.circle(60,-100)
    turtle.right(30)
    turtle.circle(30,-60)
    turtle.goto(150,0)
    turtle.penup()
    turtle.goto(45,30)
    turtle.pendown()
    turtle.left(130)
    turtle.circle(50,70)
    turtle.hideturtle()
    turtle.done()
    

    在这里插入图片描述

    展开全文
  • 学了这么多年python了,还一直没有系统地了解过python画图功能。每次都是现学现用,但是某些比较紧急的场合,往往就会比较耗时又耗力,因为不成体系,还经常会忘记已经吸纳的新知识。所以,我决定把这块的画图功能...

    学了这么多年python了,还一直没有系统地了解过python的画图功能。

    每次都是现学现用,但是某些比较紧急的场合,往往就会比较耗时又耗力,因为不成体系,还经常会忘记已经吸纳的新知识。

    所以,我决定把这块的画图功能系统的学习一下,进行知识储备。

    Python的pyplot模块绘制图表的基本操作。

    =======================================================

    一个简单的二维折线图:

    import matplotlib.pyplot as plt

    x = [1, 2, 3, 4]

    y = [1.2, 2.5, 4.5, 7.3]

    # plot函数作图

    plt.plot(x, y)

    plt.savefig("test.png", dpi=120)

    # show函数展示出这个图,如果没有这行代码,则程序完成绘图,但看不到

    plt.show()

    运行后的效果是这样的,从数值对应上,横轴应该是x轴,纵轴应该是y轴。

    但是,对应图与代码,另外疑问的是,为什么x轴给出的是整数,在绘制时却用了浮点?而又为什么y轴给出的是浮点数,在绘制时却用的是整数呢?

    ----------------------------------------------------------------------------------------------

    另一个点是:

    show()函数在通常的运行情况下,将会阻塞程序的运行,直到用户关闭绘图窗口。换句话说,在关闭show()函数弹出的图像窗口前,show()函数后面的代码不会运行,直到用户关闭图像窗口,才会继续。

    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

    我测试了普通的print()之后,发现并没有阻塞。。。

    但是呢,当我在调用plt.savefig()将当前的Figure对象保存成图像文件时,

    如果plt.savefig()代码放在了plt.show()之后,那我本地保存的图像就是一张空白图,不符合预期;

    但如果plt.savefig()代码放在了plt.show()之前,则可以成功实现保存。

    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

    虽然问题不大,但也让我产生疑问:到底是有阻塞还是没有阻塞呢?如果有,阻塞什么,而又不阻塞什么呢?

    =======================================================

    不同风格的线条:

    import matplotlib.pyplot as plt

    x = [1, 2, 3, 4]

    y = [1.2, 2.5, 4.5, 7.3]

    #线条颜色、线条样式、突出(marker)每个记录的点、线条粗细

    plt.plot(x, y, color="r", linestyle="--", marker="*", linewidth=1.0)

    plt.show()

    运行后的效果:

    ---------------------------------------------------------------------------------------------

    线条风格(linstyle):

    supported values are '-', '--', '-.', ':', 'None', ' ', '', 'solid', 'dashed', 'dashdot', 'dotted'

    -----------------------------------------------------------------------------------------------

    线条颜色(color):

    -----------------------------------------------------------------------------------------------

    线条标记(marker):

    ======================================================

    坐标轴控制

    -绘图范围:

    import matplotlib.pyplot as plt

    import numpy as np

    #x 的取值范围

    x = np.arange(-5, 5, 0.02)

    y = np.sin(x)

    #控制图像的绘图范围

    #plt.axis([x_min, x_max, y_min, y_max])

    plt.axis([-np.pi, np.pi, -2, 2])

    plt.plot(x, y, color="r", linestyle="-", linewidth=1)

    plt.show()

    运行效果如下:

    值得注意的一个点:

    虽然x的取值范围在[−5,5],但是绘图时,只是展示了[−π,π]之间的函数图。

    引出一个可以控制图像范围的函数:

    plt.axis([x_min, x_max, y_min, y_max])

    如果只是单独想要控制x轴或者y轴的取值,则可以用plt.xlim(x_min, x_max)和plt.ylim(y_min, y_max),用法与plt.axis()类似。

    ----------------------------------------------------------------------------------------------

    -标题和间隔:

    import matplotlib.pyplot as plt

    import numpy as np

    import math

    x = np.arange(-2 * math.pi, 2 * math.pi, 0.02)

    y = np.sin(x)

    plt.axis([-10, 10, -2, 2])

    plt.xticks([i * np.pi/2 for i in range(-4, 5)], [str(i * 0.5) + "$\pi$" for i in range(-4, 5)])

    plt.yticks([i * 0.5 for i in range(-4, 5)])

    plt.xlabel("x")

    plt.ylabel("y")

    plt.plot(x, y, color="r", linestyle="-", linewidth=1)

    plt.show()

    运行效果如下:

    纯粹知识的学习记录:

    函数plt.xlabel()和plt.xlabel()用来实现对x轴和y轴添加标题。

    函数plt.xticks()和plt.yticks()用来实现对x轴和y轴坐标间隔(也就是轴记号)的设定。用法上,函数的输入是两个列表,第一个表示取值,第二个表示标记。当然如果你的标记就是取值本身,则第二个列表可以忽略。(支持latex公式表达)

    =======================================================

    PS:感谢参考文章的作者,从细节、小处一步步向前推进,能够很好的帮助我建立知识体系。

    不过,一如既往地,我的问题真多,虽然问题不大,但是拥有自己的思考分析,我认为是应该一直坚持的事情。

    毕竟自己小菜鸡,一直在参考文章进行学习,期待学习后期可以有自己完全独立、不依赖参考文章的成形文字。

    展开全文
  • python画图

    2021-02-23 21:08:43
    参考博客:https://www.cnblogs.com/qccc/p/12819459.html ...Python可视化:python画图字体设置 设置标记 有时候我们希望给图上的每个点做标记,可以更直观的看到标记点,关键代码: plt.plot(x,list1,label='l

    参考博客

    https://www.cnblogs.com/qccc/p/12819459.html
    https://blog.csdn.net/SweetSeven_/article/details/82378677
    https://blog.csdn.net/u010358304/article/details/78906768
    Python可视化:python画图字体设置

    设置标记

    有时候我们希望给图上的每个点做标记,可以更直观的看到标记点,关键代码:

    plt.plot(x,list1,label='list1',marker = "o",markersize=10)#marker设置标记形状 markersize设置标记大小
    plt.plot(x,list2,label='list2',marker = "x",markersize=8)
    

    在这里插入图片描述

    完整代码:

    import matplotlib.pyplot as plt
    import numpy as np
    
    list1=[1,2,3,4,5,6,2,3,4,6,7,5,7]
    list2=[2,3,4,5,8,9,2,1,3,4,5,2,4]
    plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
    plt.title('显示中文标题')
    plt.xlabel("横坐标")
    plt.ylabel("纵坐标")
    x=np.arange(0,len(list1))+1
    x[0]=1
    my_x_ticks = np.arange(1, 14, 1)
    plt.xticks(my_x_ticks)
    plt.plot(x,list1,label='list1',marker = "o",markersize=10)#marker设置标记形状 markersize设置标记大小
    plt.plot(x,list2,label='list2',marker = "x",markersize=8)
    plt.legend()
    plt.grid()#添加网格
    plt.show()
    

    补充内容:

    matplotlib库marker表

    在这里插入图片描述

    在绘图结果上显示每个点的坐标

    import matplotlib.pyplot as plt  
    import random
    x1 = list(range(10))
    y1 = [random.randint(0,10) for i in range(10)]  
    plt.plot(x1, y1,  color='r',markerfacecolor='blue',marker='o')  
    for a, b in zip(x1, y1):  
        plt.text(a, b, (a,b),ha='center', va='bottom', fontsize=10)  
    
    plt.legend()  
    plt.show()
    

    在这里插入图片描述

    直线图

    #coding:utf-8
    import numpy as np
    import matplotlib.pyplot as plt
    
    x = [0, 1] #x轴
    y = [0, 1] #y轴
    plt.figure()#创建绘图对象
    plt.ylabel('ACC@1',size=20)#y轴的坐标 size为字体大小
    plt.xlabel('Iters',size=20)#x轴的坐标
    plt.title('line',size=30)#标题
    plt.plot(x, y,linewidth=3,c='r')#在当前对象进行绘图,c为颜色,linewidth为线的宽度
    plt.show()#将当先图像显示出来
    plt.savefig("1.jpg")#将图像保存下来
    

    在这里插入图片描述

    折线图

    示例1

    # -*- coding: utf-8 -*-
    import numpy as np
    import matplotlib.pyplot as plt
    
    # X轴,Y轴数据
    x = [0, 1, 2, 3, 4, 5, 6]
    y = [0.3, 0.4, 2, 5, 3, 4.5, 4]
    plt.figure(figsize=(8, 4))  # 创建绘图对象
    plt.plot(x, y, "b--", linewidth=1)  # 在当前绘图对象绘图(X轴,Y轴,蓝色虚线,线宽度)
    plt.xlabel("Time(s)")  # X轴标签
    plt.ylabel("Volt")  # Y轴标签
    plt.title("Line plot")  # 图标题
    plt.show()  # 显示图
    plt.savefig("line.jpg")  # 保存图
    

    在这里插入图片描述
    示例2

    # encoding=utf-8
    import matplotlib.pyplot as plt
    from pylab import *         #支持中文
    mpl.rcParams['font.sans-serif'] = ['SimHei']
     
    names = ['5', '10', '15', '20', '25']
    x = range(len(names))
    y = [0.855, 0.84, 0.835, 0.815, 0.81]
    y1=[0.86,0.85,0.853,0.849,0.83]
    #plt.plot(x, y, 'ro-')
    #plt.plot(x, y1, 'bo-')
    #pl.xlim(-1, 11) # 限定横轴的范围
    #pl.ylim(-1, 110) # 限定纵轴的范围
    plt.plot(x, y, marker='o', mec='r', mfc='w',label=u'y=x^2曲线图')
    plt.plot(x, y1, marker='*', ms=10,label=u'y=x^3曲线图')
    plt.legend() # 让图例生效
    plt.xticks(x, names, rotation=45)
    plt.margins(0)
    plt.subplots_adjust(bottom=0.15)
    plt.xlabel(u"time(s)邻居") #X轴标签
    plt.ylabel("RMSE") #Y轴标签
    plt.title("A simple plot") #标题
     
    plt.show()
    

    在这里插入图片描述

    画两条线

    # encoding=utf-8
    import matplotlib.pyplot as plt
    from pylab import *                                 #支持中文
    # mpl.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['xtick.direction'] = 'in'#刻度在象限内部
    plt.rcParams['ytick.direction'] = 'in'
    names = [0.1,0.2,0.3,0.5,0.8,1]
    x = range(len(names))
    y =  [0.476, 0.475, 0.475,0.474,0.473, 0.468]
    y1 = [0.674, 0.671, 0.682,0.681,0.684,0.686]
    
    #plt.plot(x, y, 'ro-')
    #plt.plot(x, y1, 'bo-')
    #pl.xlim(-1, 11)  # 限定横轴的范围
    plt.ylim(0.45, 0.7)  # 限定纵轴的范围
    plt.tick_params(labelsize=13)
    
    plt.plot(names, y, 'r--',linewidth = 3,label='ACC@1')
    plt.plot(names, y1, 'b--',linewidth = 3,label='ACC@5')
    
    plt.legend(loc=0, numpoints=1)
    leg = plt.gca().get_legend()
    ltext = leg.get_texts()
    plt.setp(ltext, fontsize=15)   # 让图例生效,fontsize的含义是坐标刻度字体的大小
    # plt.xticks(x, names, rotation=100)#rotation在此处是说左边刻度的倾斜程度
    plt.margins(0)
    plt.subplots_adjust(bottom=0.15)
    plt.xlabel("$\\alpha$",size=18) #X轴标签,希腊字母的表示方式要加\\
    plt.ylabel("ACC",size=18) #Y轴标签
    # plt.title("A simple plot") #标题
    plt.savefig('alpha.eps')
    plt.show()
    

    在这里插入图片描述

    柱状图

    # -*- coding: utf-8 -*-
    import matplotlib.pyplot as plt
    import tensorflow as tf
    
    name_list = ['1', '2', '3']
    num_list = [574.0, 320.0, 400]
    plt.bar(range(len(num_list)), num_list, color='rgb',width=0.2, tick_label=name_list) #width来调整柱的宽度 color来设置颜色
    plt.show()
    

    结果如图所示
    在这里插入图片描述

    散点图

    import matplotlib.pyplot as plt
    
    x_values=[1,2,3,4,5]
    y_values=[1,4,9,16,25]
    # s为点的大小
    plt.scatter(x_values,y_values,s=100)
    
    # 设置图表标题并给坐标轴加上标签
    plt.title("Scatter pic",fontsize=24)
    plt.xlabel("Value",fontsize=14)
    plt.ylabel("Scatter of Value",fontsize=14)
    
    # 设置刻度标记的大小
    plt.tick_params(axis='both',which='major',labelsize=14)
    
    plt.show()
    

    结果如图所示
    在这里插入图片描述

    添加图例,网格

    添加图例

    图例是用来表示图中对应的线的含义,关键代码:

    x=np.arange(0,len(list1))+1
    x[0]=1
    my_x_ticks = np.arange(1, 14, 1)
    plt.xticks(my_x_ticks)
    plt.plot(x,list1,label='list1')#添加label设置图例名称
    plt.plot(x,list2,label='list2')#添加label设置图例名称
    plt.legend()
    

    在这里插入图片描述
    对应线的颜色也是可以设置的,一般我都是用默认的。

    添加网格

    添加网格可以让图更清晰。关键代码

    plt.grid()
    

    在这里插入图片描述

    完整代码

    import matplotlib.pyplot as plt
    import numpy as np
    
    list1=[1,2,3,4,5,6,2,3,4,6,7,5,7]
    list2=[2,3,4,5,8,9,2,1,3,4,5,2,4]
    plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
    plt.title('显示中文标题')
    plt.xlabel("横坐标")
    plt.ylabel("纵坐标")
    x=np.arange(0,len(list1))+1
    x[0]=1
    my_x_ticks = np.arange(1, 14, 1)
    plt.xticks(my_x_ticks)
    plt.plot(x,list1,label='list1')#添加label设置图例名称
    plt.plot(x,list2,label='list2')#添加label设置图例名称
    plt.legend()
    plt.grid()#添加网格
    plt.show()
    

    marker可选参数

    '.'       point marker
    ','       pixel marker
    'o'       circle marker
    'v'       triangle_down marker
    '^'       triangle_up marker
    '<'       triangle_left marker
    '>'       triangle_right marker
    '1'       tri_down marker
    '2'       tri_up marker
    '3'       tri_left marker
    '4'       tri_right marker
    's'       square marker
    'p'       pentagon marker
    '*'       star marker
    'h'       hexagon1 marker
    'H'       hexagon2 marker
    '+'       plus marker
    'x'       x marker
    'D'       diamond marker
    'd'       thin_diamond marker
    '|'       vline marker
    '_'       hline marker
    
    

    color可用的颜色

    cnames = {
    'aliceblue':            '#F0F8FF',
    'antiquewhite':         '#FAEBD7',
    'aqua':                 '#00FFFF',
    'aquamarine':           '#7FFFD4',
    'azure':                '#F0FFFF',
    'beige':                '#F5F5DC',
    'bisque':               '#FFE4C4',
    'black':                '#000000',
    'blanchedalmond':       '#FFEBCD',
    'blue':                 '#0000FF',
    'blueviolet':           '#8A2BE2',
    'brown':                '#A52A2A',
    'burlywood':            '#DEB887',
    'cadetblue':            '#5F9EA0',
    'chartreuse':           '#7FFF00',
    'chocolate':            '#D2691E',
    'coral':                '#FF7F50',
    'cornflowerblue':       '#6495ED',
    'cornsilk':             '#FFF8DC',
    'crimson':              '#DC143C',
    'cyan':                 '#00FFFF',
    'darkblue':             '#00008B',
    'darkcyan':             '#008B8B',
    'darkgoldenrod':        '#B8860B',
    'darkgray':             '#A9A9A9',
    'darkgreen':            '#006400',
    'darkkhaki':            '#BDB76B',
    'darkmagenta':          '#8B008B',
    'darkolivegreen':       '#556B2F',
    'darkorange':           '#FF8C00',
    'darkorchid':           '#9932CC',
    'darkred':              '#8B0000',
    'darksalmon':           '#E9967A',
    'darkseagreen':         '#8FBC8F',
    'darkslateblue':        '#483D8B',
    'darkslategray':        '#2F4F4F',
    'darkturquoise':        '#00CED1',
    'darkviolet':           '#9400D3',
    'deeppink':             '#FF1493',
    'deepskyblue':          '#00BFFF',
    'dimgray':              '#696969',
    'dodgerblue':           '#1E90FF',
    'firebrick':            '#B22222',
    'floralwhite':          '#FFFAF0',
    'forestgreen':          '#228B22',
    'fuchsia':              '#FF00FF',
    'gainsboro':            '#DCDCDC',
    'ghostwhite':           '#F8F8FF',
    'gold':                 '#FFD700',
    'goldenrod':            '#DAA520',
    'gray':                 '#808080',
    'green':                '#008000',
    'greenyellow':          '#ADFF2F',
    'honeydew':             '#F0FFF0',
    'hotpink':              '#FF69B4',
    'indianred':            '#CD5C5C',
    'indigo':               '#4B0082',
    'ivory':                '#FFFFF0',
    'khaki':                '#F0E68C',
    'lavender':             '#E6E6FA',
    'lavenderblush':        '#FFF0F5',
    'lawngreen':            '#7CFC00',
    'lemonchiffon':         '#FFFACD',
    'lightblue':            '#ADD8E6',
    'lightcoral':           '#F08080',
    'lightcyan':            '#E0FFFF',
    'lightgoldenrodyellow': '#FAFAD2',
    'lightgreen':           '#90EE90',
    'lightgray':            '#D3D3D3',
    'lightpink':            '#FFB6C1',
    'lightsalmon':          '#FFA07A',
    'lightseagreen':        '#20B2AA',
    'lightskyblue':         '#87CEFA',
    'lightslategray':       '#778899',
    'lightsteelblue':       '#B0C4DE',
    'lightyellow':          '#FFFFE0',
    'lime':                 '#00FF00',
    'limegreen':            '#32CD32',
    'linen':                '#FAF0E6',
    'magenta':              '#FF00FF',
    'maroon':               '#800000',
    'mediumaquamarine':     '#66CDAA',
    'mediumblue':           '#0000CD',
    'mediumorchid':         '#BA55D3',
    'mediumpurple':         '#9370DB',
    'mediumseagreen':       '#3CB371',
    'mediumslateblue':      '#7B68EE',
    'mediumspringgreen':    '#00FA9A',
    'mediumturquoise':      '#48D1CC',
    'mediumvioletred':      '#C71585',
    'midnightblue':         '#191970',
    'mintcream':            '#F5FFFA',
    'mistyrose':            '#FFE4E1',
    'moccasin':             '#FFE4B5',
    'navajowhite':          '#FFDEAD',
    'navy':                 '#000080',
    'oldlace':              '#FDF5E6',
    'olive':                '#808000',
    'olivedrab':            '#6B8E23',
    'orange':               '#FFA500',
    'orangered':            '#FF4500',
    'orchid':               '#DA70D6',
    'palegoldenrod':        '#EEE8AA',
    'palegreen':            '#98FB98',
    'paleturquoise':        '#AFEEEE',
    'palevioletred':        '#DB7093',
    'papayawhip':           '#FFEFD5',
    'peachpuff':            '#FFDAB9',
    'peru':                 '#CD853F',
    'pink':                 '#FFC0CB',
    'plum':                 '#DDA0DD',
    'powderblue':           '#B0E0E6',
    'purple':               '#800080',
    'red':                  '#FF0000',
    'rosybrown':            '#BC8F8F',
    'royalblue':            '#4169E1',
    'saddlebrown':          '#8B4513',
    'salmon':               '#FA8072',
    'sandybrown':           '#FAA460',
    'seagreen':             '#2E8B57',
    'seashell':             '#FFF5EE',
    'sienna':               '#A0522D',
    'silver':               '#C0C0C0',
    'skyblue':              '#87CEEB',
    'slateblue':            '#6A5ACD',
    'slategray':            '#708090',
    'snow':                 '#FFFAFA',
    'springgreen':          '#00FF7F',
    'steelblue':            '#4682B4',
    'tan':                  '#D2B48C',
    'teal':                 '#008080',
    'thistle':              '#D8BFD8',
    'tomato':               '#FF6347',
    'turquoise':            '#40E0D0',
    'violet':               '#EE82EE',
    'wheat':                '#F5DEB3',
    'white':                '#FFFFFF',
    'whitesmoke':           '#F5F5F5',
    'yellow':               '#FFFF00',
    'yellowgreen':          '#9ACD32'}
    

    上面对应的颜色:
    在这里插入图片描述

    另外的显示方式
    在这里插入图片描述

    画图刻度、图例等字体、字体大小、刻度密度、线条样式设置

    设置输出的图片大小

    figsize = 11,9
    figure, ax = plt.subplots(figsize=figsize)
    

    画简单的折线图,同时标注线的形状、名称、粗细

    A,=plt.plot(x1,y1,'-r',label='A',linewidth=5.0,ms=10)
    

    其中线条样式以及颜色设置可参考:https://blog.csdn.net/code_segment/article/details/79217700,个人觉得介绍非常详尽。

    线条粗细使用linewidth设置,对应线条上的marker大小设置为ms参数。因为有时候粗线条,所以对应marker大小也需要增加。

    如果想要标记marker为空心,可以在后面加上 markerfacecolor=‘none’

    设置图例以及对应属性:

    legend = plt.legend(handles=[A,B],prop=font1)
    

    图例的字体格式在prop中进行设置,赋值font1可以是一个字典,包含各个属性及其对应值,属性包括family(字体)、size(字体大小)等常用属性,更详细的解释可参考matplotlib手册中关于legend prop的解释。
    一种比较简单的设置为:

    font1 = {'family' : 'Times New Roman',
    'weight' : 'normal',
    'size'   : 23,
    }
    

    坐标轴刻度密度/间隔设置

    ax.xaxis.set_major_locator(MultipleLocator(10))
    

    括号中的数字为对应的刻度间隔值,y轴对应类似。

    坐标轴刻度值属性设置

    plt.tick_params(labelsize=23)
    labels = ax.get_xticklabels() + ax.get_yticklabels()
    [label.set_fontname('Times New Roman') for label in labels]
    

    坐标轴名称以及对应字体属性设置

    plt.xlabel('round',font2)
    plt.ylabel('value',font2)
    

    这种比较简单,第一个参数为坐标轴名称,第二个参数也是一个字典参数,和上文提及的dict font1格式相同。

    有时候,因为调整了坐标刻度的字体大小,影响了坐标轴label的显示。所以我们需要通过调整坐标轴边距来显示label

    plt.subplots_adjust(left = 0.15,bottom=0.128)
    

    下面我们给出一个比较简单的画图过程:

    #--coding:utf-8--
    import  matplotlib.pyplot as plt
     
    #数据设置
    x1 =[0,5000,10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 55000];
    y1=[0, 223, 488, 673, 870, 1027, 1193, 1407, 1609, 1791, 2113, 2388];
     
    x2 =[0,5000,10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 55000];
    y2=[0, 214, 445, 627, 800, 956, 1090, 1281, 1489, 1625, 1896, 2151];
     
    #设置输出的图片大小
    figsize = 11,9
    figure, ax = plt.subplots(figsize=figsize)
     
    #在同一幅图片上画两条折线
    A,=plt.plot(x1,y1,'-r',label='A',linewidth=5.0)
    B,=plt.plot(x2,y2,'b-.',label='B',linewidth=5.0)
     
    #设置图例并且设置图例的字体及大小
    font1 = {'family' : 'Times New Roman',
    'weight' : 'normal',
    'size'   : 23,
    }
    legend = plt.legend(handles=[A,B],prop=font1)
     
    #设置坐标刻度值的大小以及刻度值的字体
    plt.tick_params(labelsize=23)
    labels = ax.get_xticklabels() + ax.get_yticklabels()
    [label.set_fontname('Times New Roman') for label in labels]
     
    #设置横纵坐标的名称以及对应字体格式
    font2 = {'family' : 'Times New Roman',
    'weight' : 'normal',
    'size'   : 30,
    }
    plt.xlabel('round',font2)
    plt.ylabel('value',font2)
     
    #将文件保存至文件中并且画出图
    plt.savefig('figure.eps')
    plt.show()
    

    最终生成的图片效果如下:
    在这里插入图片描述

    展开全文
  • Python画图

    2019-03-07 11:16:58
    Python画图 1.画一个简单的图 import matplotlib.pyplot as plt #pyplot:Matplotlib 软件包中子包,提供了一个类似MATLAB的绘图框架。 #支持 Python 语言 input_values = [1,2,3,4,5] squares = [1,4,9,16,...
  • 本人由于平常写论文需要输出一些结果图,但是苦于在网上搜python画图时,详细的教程非常多,但是就是找不到能马上解决自己问题那一行代码,所以打算写一些适合需求简单的朋友应急用的教程,应急就必须方便搜索,所以...
  • Python画图整理

    2021-09-23 13:37:12
    设置线条 设置标记 下面这是最简单的示例: import matplotlib.pyplot as plt list1=[1,2,3,4,5,6,2,3,4,6,7,5] list2=[2,4,4,5,8,9,2,1,3,4,5,2] plt.plot(list1) plt.plot(list2) plt.show() 一:设置标题 ...
  • 本篇写python画图的操作,主要设计画图,坐标轴设置,多条线。 目录 1. 关于画图和Matplotlib 2. 简单的使用 3. figure对象 4. legend图例 5. 在图片上添加标注annotation 1. 关于画图和Matplotlib ...
  • #椭圆,中心位置,轴长度(长轴,短轴),顺时针倾斜角度,顺时针开始的角度(水平右边),结束角度,颜色,粗细 cv.ellipse(img, (256, 256), (100, 50), 0, 30, 160, (0, 255, 0), -1) #画多边形,需要知道顶点 pts...
  • python画图程序

    千次阅读 2018-07-11 15:32:11
    /usr/bin/python # -*- coding: utf-8 -* import wx import wx.lib.buttons as buttons import wx.adv as adv import wx.lib.colourselect as color import wx.html import os import pickle import math ...
  • Python 画图参数整理

    千次阅读 2019-12-22 21:42:14
    Python.sns画图参数收藏 一、五大主题风格 seaborn有五种主题风格:darkgrid,whitegrid,dark,white,ticks ·whitegrid: 白底,黑色网格线 ·white:纯白底 ·darkgrid:灰底,白色网格线 ·dark:灰色纯色...
  • 设置输出的图片大小: ...画简单的折线图,同时标注线的形状、名称、粗细: A,=plt.plot(x1,y1,'-r',label='A',linewidth=5.0,ms=10) 其中线条样式以及颜色设置可参考:https://blog....
  • capprops:设置箱线图顶端和末端线条的属性,如颜色、粗细等; whiskerprops:设置须的属性,如颜色、粗细、线的类型等; 代码实现 # 导入第三方模块 import pandas as pd import matplotlib.pyplot as plt # 读取...
  • 我们继续用Python的海龟库来画图吧!上图是画一朵花的程序,重点是6-12行,使用了函数来定义drawleaf:每一掰叶子由两条弧线组成,每一条弧线重复画15次,每次前进5步,右转6度。看图形化代码就很清楚了,这朵花由4...
  • 学了这么多年python了,还一直没有系统地了解过python画图功能。每次都是现学现用,但是某些比较紧急的场合,往往就会比较耗时又耗力,因为不成体系,还经常会忘记已经吸纳的新知识。所以,我决定把这块的画图功能...
  • 因为画图画曲线不是Python擅长的事情,所以用纯粹的Python来做,会更有挑战,也更有趣。如果你经常用抖音、快手、B站、知乎、微博……或者类似的任何一个内容或社交平台,那你很大概率能答出...
  • python画图代码星星-python画星星

    千次阅读 2020-11-01 13:16:36
    放到前面同样会有语法错误,*星args返回的是元组tuple元祖星星args返回的是字典python默认会从左到右匹配变量名,对于参数,划线是最好的学习方法country...最后这个混合使用的也特别好,画好线一目了然? 另外一个...
  • linewidths:表示线条粗细,可选。 示例: 绘制身高—体重的散点图 运行脚本输出如图1-2所示的图形。 图1-2 基本的散点图 散点图主要演示两个变量的相关性: 正相关、负相关、不相关。 示例: 显示y=2x+1的图形 ...
  • python画图 图例 颜色 线宽

    万次阅读 2018-12-09 10:07:17
    今天不太想整理,贴一下代码。 plt.figure() plt.plot(range(0, len(flow_in)), [float(flow_in[i]) for i in range(0, len(flow_in))], label="flow_in", color='r', linewidth=2) ...
  • Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象、直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松...
  • matplotlib画图 (1)单折线图 from matplotlib import pyplot as plt #as就是重新命名的意思 from matplotlib.font_manager import FontProperties #导入中文字体 font = FontProperties(fname=r"/usr/share/fonts/...
  • 交流学习python编程技术及行业动态,点击上方“蓝字”关注我们Python绘图案例实战——用Python画哆啦A梦(上篇)写在前面 ↓注:本教程基于64位windows系统(鼠标右键点击桌面“此电脑”图标——属性可查看电脑系统版本...
  • pensize():设置画笔的线条粗细 pencolor():设置画笔的颜色 speed():设置画笔的移动速度 forward(distance);笔尖移动的举例 backward(distance):笔尖后退的距离 right(degree):顺时针旋转degree° left...
  • 海龟画图Python官方的标准模块,导入方法如下(这里为了方便,导入时重命名):。——窗口控制—— title方法设置窗口标题:。 setup方法设置窗口的大小和位置:。 bye或exitonclick方法关闭窗口:。——画布控制...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 674
精华内容 269
关键字:

python画图线条粗细

python 订阅