matplotlib绘制等直线

来源:互联网 发布:国外油画网站知乎 编辑:程序博客网 时间:2024/06/11 11:13
# 利用contour(),contourf()描绘等值线# contourf()带有填充效果def fig2():    y, x = np.ogrid[-2:2:200j, -3:3:300j]    z = x * np.exp(-x ** 2 - y ** 2)    extent = [np.min(x), np.max(x), np.min(y), np.max(y)]    plt.figure(figsize=(10, 4))    plt.subplot(121)    # 使用extent指定x轴和y轴的数据范围    # 10 表示将整个函数的范围等值分为10个区间    cs = plt.contour(z, 10, extent=extent)    plt.clabel(cs)    plt.subplot(122)    plt.contourf(x.reshape(-1), y.reshape(-1), z, 20)    plt.show()

这里写图片描述

# 隐函数的等值线绘制def fig3():    y, x = np.ogrid[-1.5:1.5:200j, -1.5:1.5:200j]    f = (x ** 2 + y ** 2) ** 4 - (x ** 2 - y ** 2) ** 2    plt.figure(figsize=(9, 4))    plt.subplot(121)    extend = [np.min(x), np.max(x), np.min(y), np.max(y)]    # level参数表示最终回执的等值线的数目    # 可以单独设置等值线的colors,linestyles,linewidths等参数    cs = plt.contour(f, extend=extend, levels=[0, 0.1], colors=['b', 'r'], linestyles=['solid', 'dashed'],                     linewidths=[2, 2])    plt.subplot(122)    # cs.collections表示等值线的列表每条等值线用LineCollection对象表示    for c in cs.collections:        data = c.get_paths()[0].vertices        # c:LineCollection对象是一组曲线的集合,它可以表示蓝色实现那样有许多条线构成的等值线,它的get_paths()获得构成等值线的所有路径        plt.plot(data[:, 0], data[:, 1], color=c.get_color()[0], linewidth=c.get_linewidth()[0])    plt.show()

这里写图片描述

原创粉丝点击