matplotlib常用绘制图的代码总结

包准备

'''初始化包'''
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm

plt.rcParams['font.sans-serif'] = ['SimHei'] # 替换sans-serif字体
plt.rcParams['axes.unicode_minus'] = False   # 解决坐标轴负数的负号显示问题

散点图

'''scatter'''
def get_scatter_show(x,y):
    fig =  plt.figure()
    ax1 = fig.add_subplot(1,1,1)
    '''下面写ax1的相关信息'''
    plt.scatter(x,#数据,下同
                y,
                marker='x',#用什么标记
                s=10,#标记大小
                c='red',#颜色
                label='散点图示例'
                )
    plt.xlabel(r'x坐标')                      #坐标
    plt.ylabel(r'y坐标')
    plt.xlim(-20,20)                          #范围
    # plt.ylim(0,200)
    plt.title(r'散点图示例')
    # my_x_ticks = np.arange(-20, 20, 2)
    # plt.xticks(my_x_ticks)                  #刻度
    # plt.grid()                              #网格
    plt.legend()
    plt.show()

'''数据准备'''
x = np.arange(-20,20)
y = np.sin(x)
get_scatter_show(x,y)

在这里插入图片描述

折线图

'''plot'''
def get_plot_show(x,y):
    fig =  plt.figure()
    ax1 = fig.add_subplot(1,1,1)
    '''下面写ax1的相关信息'''
    plt.plot(x,y,#数据
             marker='',#标记
             c='red',#颜色
             label=r"$\sigma(t) = \frac{1}{1 + e^{-t}}$"#标签名字
             )
    plt.xlabel(r'x坐标')                      #坐标
    plt.ylabel(r'y坐标')
    plt.title(r'折线图示例')
    # plt.xlim(0,100)                          #范围
    # plt.ylim(0,200)
    # my_x_ticks = np.arange(-20, 20, 2)
    # plt.xticks(my_x_ticks)                  #刻度
    # plt.grid()                              #网格
    # plt.axhline(y=0, color="black", linestyle="--")     #画一条渐近线
    # plt.axhline(y=0.5, color="black", linestyle=":")
    # plt.axhline(y=1.0, color="black", linestyle="--")
    plt.legend(fontsize=14)                 #标签显示尺寸变14
    plt.show()
'''数据准备'''

x = np.linspace(-10, 10, 100)       #让间隔变多,使得图像更加平滑
y = 1 / (1 + np.exp(-x))
get_plot_show(x,y)

在这里插入图片描述

柱状图

def get_bar_show(x,y):
    width = 0.5
    plt.bar(x,y,#数据
            width,#宽度
            color='g',
            alpha=0.15,
            tick_label = ['a', 'b', 'c', 'd', 'e']
            )
    # plt.xticks(x, ['a', 'b', 'c', 'd', 'e'])
    plt.title("柱状图示例")
    plt.show()

'''数据准备'''
x = np.arange(1,6)
y = np.random.randint(5,10,5)
get_bar_show(x,y)

在这里插入图片描述

直方图

def get_hist_show(x):
    plt.hist(
        x, #数据
        100, #个数
        normed=1, #将y轴默认的数值出现个数归一化为出现的概率
        histtype='stepfilled', # 填充面积,step只有线条g
        facecolor='g',
        alpha=0.25#透明度
    )
    plt.grid(True)
    plt.title('直方图示例')
    plt.show()

'''数据准备'''
x = np.random.normal(loc=0.0, scale=20.0, size=1000)  # 生成一个 均值/方差 给定的正态分布数组
get_hist_show(x)

在这里插入图片描述

箱盒图

def get_boxplot_show(x):
    plt.boxplot(x)
    plt.grid(axis="y",ls=":",color="gray",alpha=0.3)
    plt.show()

'''数据准备'''
spread = np.random.rand(50) * 100
center = np.ones(25) * 50
flier_high = np.random.rand(10) * 100 + 100
flier_low = np.random.rand(10) * -100
data = np.concatenate((spread, center, flier_high, flier_low))
get_boxplot_show(data)

在这里插入图片描述

饼图

def get_pie_show(labels,sizes,explode):
    plt.pie(
        sizes, #百分比
        explode=explode, #突出比例
        labels=labels, #各类别名曾
        autopct='%1.1f%%', #显示百分比方式
        shadow=False, #阴影效果
        startangle=180 #饼图起始的角度,度数,默认0为右侧水平180度开始,逆时针旋转
    )
    plt.axis('equal') #正圆形饼图,x/y轴尺寸相等.默认是扁图,
    plt.show()

'''数据准备'''
labels = ['汽车','轮船','飞机','火车'] #类别名称
sizes = [15,10,45,10] #数量
explode = (0.05,0,0,0) #突出第1块,比例0.05
get_pie_show(labels,sizes,explode)

在这里插入图片描述

条形图

ef get_barh_show(x,y):
    plt.barh(x, y, align="center", color="c", tick_label=['汽车','轮船','飞机','火车',"高铁"])
    plt.show()

'''数据准备'''
x = np.arange(1,6)
y = np.random.randint(5,10,5)
get_barh_show(x,y)

在这里插入图片描述

极线图

def get_polar_show(theta, data):
    plt.polar(theta, data, c="r", lw=2, marker="o", mfc="g", ms=4)
    plt.show()

'''数据准备'''
theta = np.linspace(0, 2 * np.pi, 100, endpoint=False)
data = 5 * np.random.random(100)
get_polar_show(theta, data)

在这里插入图片描述

棉棒图

def get_stem_show(x,y):
    plt.stem(x, y, linefmt="grey", markerfmt="D", basefmt="-")
    plt.show()
    
'''数据准备'''
x = np.linspace(0,7,20)
y = np.exp(np.sin(x))
get_stem_show(x,y)

在这里插入图片描述

误差棒图


def get_ebar_show(x,y):
    plt.errorbar(x,y,fmt="ro:",yerr=0.1,xerr=0.02)
    plt.xlim(0,10)
    plt.show()

x = np.linspace(0,10,20)
y = np.exp(x)
get_ebar_show(x,y)

在这里插入图片描述

三维图

def loss3D(X,Y,Z):
    fig = plt.figure()
    ax = Axes3D(fig)
    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.viridis)
    plt.show()

X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

loss3D(X,Y,Z)

在这里插入图片描述

参考资料:

https://www.matplotlib.org.cn/

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小风_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值