zoukankan      html  css  js  c++  java
  • Matplotlib常用命令

    这里主要记录下常用设置:

    import numpy as np
    import matplotlib.pyplot as plt
    
    # 设定图片大小
    fig, ax = plt.subplots(figsize=(8, 6))
    # 设定中文字体,保证中文显示正常
    plt.rcParams['font.sans-serif']='simhei'
    # 定义标签字体大小
    font1 = {'family' : 'simhei',
    'weight' : 'normal',
    'size'   : 18,}
    
    # 生成x, y数据
    x = np.arange(0., 5., 0.2)
    y1 = x**2
    y2 = x**3
    
    # 设置x轴,y轴,title标签
    plt.xlabel("我是X", fontdict=font1)
    plt.ylabel("我是Y", fontdict=font1)
    plt.title("这是一幅图", fontdict=font1)
    
    # 设置x, y显示范围
    plt.xlim(0, 5)
    plt.ylim(0, max(y1))
    
    # 设置x, y显示刻度
    _xtick_labels = [i/2 for i in range(0,11)] # 把默认的每隔1改成了每隔0.5
    plt.xticks(_xtick_labels) 
    _ytick_labels = [i for i in range(0, int(max(y1))+2)]
    plt.yticks(_ytick_labels[::2]) # 如果过于密集,可以取步长,这里变成了每隔2
    
    # 设置框线显示,不显示上边框和右边框
    ax.spines['right'].set_visible(False)
    ax.spines['top'].set_visible(False)
    
    # 画图
    plt.plot(x, y1, label="curve1")
    plt.plot(x, y2, label="curve2")
    
    # 显示图例
    plt.legend()
    
    # 保存图片
    plt.savefig("test.png", bbox_inches = 'tight')

    运行结果如下:

    下面还可以对X,Y轴的刻度进行替换,保证_x和_xtick_labels的大小相同:

    # 刻度替换
    _x = range(0, 6)
    _xtick_labels = ["I'm {}".format(i) for i in _x]
    plt.xticks(_x, _xtick_labels)

    运行结果如下:

    下面再举一个散点图的例子:

    import matplotlib.pyplot as plt
    import random, matplotlib
    fig, ax = plt.subplots(figsize=(18, 6))
    x = range(1, 32)
    a = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
    b = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]
    
    x2 = range(41, 72)
    
    _x = list(x)+list(x2)
    xtick_labels = ["3月{}号".format(i) for i in x]
    xtick_labels += ["10月{}号".format(i) for i in x]
    plt.xticks(_x[::2], xtick_labels[::2], rotation=45)
    
    plt.xlabel("时间", font1)
    plt.ylabel("温度", font1)
    plt.title("3月和10月温度变化", font1)
    
    plt.scatter(x, a, label="3月份")
    plt.scatter(x2, b, label="10月份")
    
    plt.legend()
    plt.savefig("test.png", bbox_inches = 'tight')

    运行结果如下:

     从上图可以看到保存的图片X轴标签显示不完整,我们修改plt.savefig中的参数,使用bbox_inches=‘tight’,即可正常显示:

     plt.savefig("test.png", bbox_inches = 'tight') 

  • 相关阅读:
    深入剖析ASP.NET的编译原理之二:预编译(Precompilation)
    六个建议防止SQL注入式攻击
    微软IIS的ISAPI筛选器权限法则
    IIS属性没有ASP.NET选项
    让我们的服务器更安全Win03 防木马权限设置,IIS服务器安全配置
    IIS自动停止,iis自动关闭。应用程序池假死、自动重启以及iis权限等解决办法
    深入剖析ASP.NET的编译原理之一:动态编译(Dynamical Compilation)
    c#操作xml
    C# 容易出现insert into语句的语法错误的原因
    兼容ie/火狐的全能日历代码含农历
  • 原文地址:https://www.cnblogs.com/yunxiaofei/p/11109703.html
Copyright © 2011-2022 走看看