zoukankan      html  css  js  c++  java
  • Matplotlab绘图基础

    import matplotlib.pyplot as plt

    设置画布大小

    plt.figure(figsize=(6, 3))

    plt.plot(x,y,'g^',label='sin(x)')     参数1:X轴,参数2:y轴   颜色 形状  label=“线条标题” plt.legend(loc='best')  需要和legend配合使用

    plt.title("标题名称")   

    plt.xlim((0, np.pi + 1))   设置X轴范围
    plt.ylim((-3, 3))   设置Y轴范围
    plt.xlabel('X')  设置X轴标题
    plt.ylabel('Y')  设置Y轴标题

    plt.legend(loc='best')  显示右上角线条款式

    首先来看下如何绘制散点图。

    k = 500
    x = np.random.rand(k) 
    y = np.random.rand(k)
    size = np.random.rand(k) * 50 # 生成每个点的大小
    colour = np.arctan2(x, y) # 生成每个点的颜色大小
    plt.scatter(x, y, s=size, c=colour)
    plt.colorbar() # 添加颜色栏
    plt.show()

    柱状图我们经常会用到,我们来看下如何画出柱状图,并在图上标注出数据对应的数值。

    k = 10
    x = np.arange(k)
    y = np.random.rand(k)
    plt.bar(x, y) # 画出 x 和 y 的柱状图

    # 增加数值
    for x, y in zip(x, y):
        plt.text(x, y , '%.2f' % y, ha='center', va='bottom') #设置参数 ha='center' 横向居中对齐,设置 va='bottom'纵向底部(顶部)对齐。
    plt.show()

    labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
    sizes = [15, 30, 45, 10]
    explode = (0, 0.1, 0, 0) # only "explode" the 2nd slice (i.e. 'Hogs')

    
    

    fig1, ax1 = plt.subplots(1)

    ax1.pie(sizes, labels=labels, autopct='%1.1f%%', shadow=True)
    ax1.axis('equal')

    # ax1.legend(labels=labels, loc='upper right')

    
    

    plt.show()

     

    中文乱码解决

    Matplotlib 有个让人恼火的问题是,默认情况下,Matplotlib 中文会乱码。

    x = ['北京', '上海', '深圳', '广州']
    y = [60000, 58000, 50000, 52000]
    plt.plot(x, y)
    plt.show()

    可以看到,上面所有的中文都乱码了,显示成方框了,如何解决呢?

    其实只需要配置下后台字体即可。

    plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
    plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

    plt.plot(x, y)
    plt.show()



  • 相关阅读:
    机器学习中的度量——其他度量
    机器学习中的度量——相似度
    机器学习中的度量——相关系数
    机器学习中的度量——统计上的距离
    redis数据结构和常用命令
    分布式一致性算法梳理
    zookeeper集群搭建及ZAB协议
    手写RPC框架(netty+zookeeper)
    zookerper入门、核心概念和使用场景
    RabbitMQ集群部署、高可用和持久化
  • 原文地址:https://www.cnblogs.com/dll102/p/12957697.html
Copyright © 2011-2022 走看看