• Python下matplotlib常见图形绘制


    Matplotlib 是 Python 的一个2D绘图库,可以帮助我们绘制各种图形,下面介绍一些最常见的数学图形绘制方法。

    1.直线图

    import numpy as np 
    import matplotlib.pyplot as plt 
     
    x = np.arange(1,6) 
    y =  2 * x
    plt.title("LineGraph") #标题名
    plt.xlabel("x axis") #x轴标注
    plt.ylabel("y axis") #y轴标注
    plt.plot(x,y) #以x为横坐标,y为纵坐标,按照(x,y)的顺序绘图
    plt.show() #显示图像

    运行结果:

    关于上述代码中的plot函数,调用形式一般为:

    plot([x], y, [fmt], data=None, **kwargs)

    plot([x], y, [fmt], [x2], y2, [fmt2], …, **kwargs)

    其中,fmt = [color][marker][linestyle],用于定义图的基本属性:颜色(color)、点型(marker)、线型(linestyle)。

    **kwargs参数包括:x轴数据、y轴数据、线宽(linewidth)、线条颜色(color)。

    通常,如果需要在一张图中绘制不同类别的数据点时,可以通过设置plot()参数来区分不同类别的点和相应的直线。


    例如,我们可以将上述代码改为:

    import numpy as np 
    import matplotlib.pyplot as plt 
    import matplotlib
    # 设置matplotlib显示中文和负号
    matplotlib.rcParams['font.sans-serif']=['SimHei'] # 显示中文为黑体
    matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号
    
    x1 = np.arange(-5,6) 
    y1 =  2 * x
    x2 = np.arange(-5,6) 
    y2 =  x / 2
    plt.title("直线图") 
    plt.xlabel("x轴") 
    plt.ylabel("y轴") 
    plt.plot(x1,y1,'-.ro') #线形为点横线,数据点形状为圆圈,线条和数据点颜色为红色
    plt.plot(x2,y2,':b+') #线形为点线,数据点形状为加号,线条和数据点颜色为蓝色
    plt.show()

    运行结果:

    2.sin、cos函数图

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(-np.pi, np.pi, 256, endpoint=True) #获取x坐标
    s, c = np.sin(x), np.cos(x) #获取y坐标
    plt.plot(x, s,"r-")  
    plt.plot(x, c,"g-")
    plt.show()

    运行结果:

    3.条形图

    pyplot 子模块提供 bar() 函数来生成条形图。

    import numpy as np
    import matplotlib.pyplot as plt
    
    from matplotlib import pyplot as plt 
    x1 = [1,3,5] 
    y1 = [1,2,3] 
    x2 = [2,4,6] 
    y2 = [3,2,1] 
    plt.bar(x1, y1, facecolor='#9999ff', edgecolor='r') 
    plt.bar(x2, y2, facecolor='c', edgecolor='k') 
    plt.title('条形图') 
    plt.xlabel('x轴') 
    plt.ylabel('y轴') 
    plt.show()

    运行结果:

    4.折线图

    import matplotlib.pyplot as plt
    
    x = [1,3,6,7,9,12]
    y = [8,2,4,1,9,9]
    
    plt.plot(x, y, 'rp-', markersize=10)
    plt.title('折线图') 
    plt.xlabel('x轴') 
    plt.ylabel('y轴') 
    plt.show()

    运行结果:

    5.直方图

    import matplotlib.pyplot as plt
    import numpy as np
    import matplotlib
    
    # 随机生成(10000,)服从正态分布的数据
    data = np.random.randn(10000)
    
    # data:绘图数据
    # bins:直方图的长条形数目,默认为10。
    # density:是否将得到的直方图向量归一化,density默认为0代表不归一化,显示频数;density=1表示归一化,显示频率。
    # facecolor:长条形的颜色
    # edgecolor:长条形边框的颜色
    # alpha:透明度
        
    plt.hist(data, bins=50, density=1, facecolor="m", edgecolor="k", alpha=0.5)
    plt.title('直方图') 
    plt.xlabel('区间') 
    plt.ylabel('频率') 
    plt.show()

    运行结果:

    6.饼图

    import matplotlib.pyplot as plt
    import matplotlib
    
    #以一个人数为60的班的学生考试成绩为例
    label_list = ["0-59分", "60-70分", "70-80分", "80-90分", "90-100分"] #饼图各部分标签,对成绩划分区间
    size = [3, 12, 15, 25, 5] #饼图各部分大小,各区间对应人数
    color = ["#EB7AD4", "#76BFF0", "c", "#EFAA98", "#AA8ADC"]  #饼图各部分颜色
    explode = [0, 0, 0, 0.1, 0]   # 设置突出值
    
    # labeldistance:设置标签文本距圆心位置,1.1表示1.1倍半径
    # autopct:设置圆里面文本
    # shadow:设置是否有阴影
    # startangle:起始角度,默认从0开始逆时针转
    # pctdistance:设置圆内文本距圆心距离
    # patches:返回值
    # l_text:圆内部文本
    # p_text:圆外部文本
    
    patches, l_text, p_text = plt.pie(size, explode=explode, colors=color, labels=label_list, labeldistance=1.12, autopct="%1.1f%%", shadow=True, startangle=90, pctdistance=0.8)
    plt.axis("equal")    # 设置横轴和纵轴大小相等,这样饼才是圆的
    plt.legend()
    plt.show()

    运行结果:

  • 相关阅读:
    Asp.Net MVC3.0中防止跨站的POST
    .NET实现字符串base64编码
    silverlight调用MVC WebApi方法
    MVC实现上传图片的方法
    ASP.NET使用文件上传控件上传图片
    设置网页icon标志
    C# 连接EXCEL 和 ACCESS
    javascript前进、后退、刷新的实现
    DataTable数据统计方法
    常量指针和指针常量
  • 原文地址:https://www.cnblogs.com/BIXIABUMO/p/12500923.html
Copyright © 2020-2023  润新知