zoukankan      html  css  js  c++  java
  • 第二章:使用统计函数绘制简单图形

    1、绘制条形图

     1 import  matplotlib
     2 import  matplotlib.pyplot as plt
     3 
     4 # 显示中文标识
     5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"]
     6 matplotlib.rcParams["axes.unicode_minus"] = False
     7 
     8 # X/Y轴刻度
     9 x = [1,2,3,4,5,6,7,8]
    10 y = [3,1,4,5,8,9,7,2]
    11 
    12 # ==============绘制条形图=================
    13 plt.bar(x,
    14         y,
    15         align="center",                                 # 排列方式
    16         color="c",                                      # 填充颜色
    17         tick_label=["q","a","c","e","r","j","b","p"],   # 将X轴上的刻度替换成指定编号
    18         hatch="/")                                      # 图形填充值,可取值为: / ,  , | , - , + , x , o , O , . , *
    19 
    20 # X/Y轴标签
    21 plt.xlabel("箱子编号")
    22 plt.ylabel("箱子重量(kg)")
    23 
    24 plt.show()

     2、绘制水平条形图

     1 import  matplotlib
     2 import  matplotlib.pyplot as plt
     3 
     4 # 显示中文标识
     5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"]
     6 matplotlib.rcParams["axes.unicode_minus"] = False
     7 
     8 # X/Y轴刻度
     9 x = [1,2,3,4,5,6,7,8]
    10 y = [3,1,4,5,8,9,7,2]
    11 
    12 # ==============绘制水平条形图=================
    13 plt.barh(x,
    14         y,
    15         align="center",                                 # 排列方式
    16         color="c",                                      # 填充颜色
    17         tick_label=["q","a","c","e","r","j","b","p"],   # 将X轴上的刻度替换成指定编号
    18         hatch="/")                                      # 图形填充值,可取值为: / ,  , | , - , + , x , o , O , . , *
    19 
    20 # X/Y轴标签
    21 plt.xlabel("箱子重量(kg)")
    22 plt.ylabel("箱子编号")
    23 
    24 plt.show()

     3、绘制直方图

     1 import  matplotlib
     2 import  matplotlib.pyplot as plt
     3 import numpy as np
     4 
     5 # 显示中文标识
     6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"]
     7 matplotlib.rcParams["axes.unicode_minus"] = False
     8 
     9 # 随机生成0,9的100个整数
    10 x = np.random.randint(0,10,100)
    11 bins = range(0,11,1)
    12 
    13 # ================绘制直方图================
    14 plt.hist(x=x,                       # 分布数据
    15          bins=bins,                 # 指定共有几个箱子,也就是有几条条形图
    16          color="g",                 # 条形图颜色
    17          histtype="barstacked",     # 条形图类型,可选bar,barstacked,step,stepfilled,默认为bar
    18          align="mid",               # 直方图样式,可选 left mid right
    19          rwidth=0.8,                # 柱子与柱子之间的距离,默认是0
    20          alpha=0.6)                 # 透明度
    21 # X/Y轴标签
    22 plt.xlabel("箱子重量(kg)")
    23 plt.ylabel("销售个数(个)")
    24 
    25 plt.show()

     4、绘制饼图

     1 import  matplotlib
     2 import  matplotlib.pyplot as plt
     3 
     4 # 显示中文标识
     5 matplotlib.rcParams["font.sans-serif"] = ["SimHei"]
     6 matplotlib.rcParams["axes.unicode_minus"] = False
     7 
     8 # 数据类型
     9 kinds = "简易箱","保温箱","行李箱","密封箱"
    10 
    11 # 每种数据的填充颜色
    12 colors = ["r","g","b","c"]
    13 
    14 # 每种数据的占比
    15 soldNums = [0.05,0.45,0.15,0.35]
    16 
    17 # ===================绘制饼图====================
    18 plt.pie(x=soldNums,         # 每种数据的占比
    19         labels=kinds,       # 饼图外侧显示的说明文字
    20         autopct="%3.1f%%",  # 控制饼图内百分比设置,'%1.1f'指小数点前后位数(没有用空格补齐)
    21         startangle=60,      # 起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起
    22         colors=colors)      # 每快饼的填充颜色
    23 
    24 # 标题
    25 plt.title("不同箱子的销售占比")
    26 plt.show()

     5、在极坐标轴上绘制折线图

     1 import matplotlib.pyplot as plt
     2 import numpy as np
     3 
     4 # 从0到2pi取12个数.endpoint:如果为False则最后一个数不为2pi,如果为True则最后一个数为2pi
     5 theta = np.linspace(start=0.0,stop=2*np.pi,num=12,endpoint=False)
     6 
     7 # 创建一个给定类型(12个)的数组,将其填充在一个均匀分布的随机样本[0, 1)中
     8 r = 30*np.random.rand(12)
     9 
    10 # ===============在极坐标轴上绘制折线图=================
    11 plt.polar(theta,                # 每个标记所在的射线与极径的夹角
    12           r,                    # 每个标记到原点的距离
    13           color="chartreuse",   # 颜色
    14           linewidth=2,          # 线宽
    15           marker="*",           # 标志点
    16           mfc="b",              # 数据点的颜色
    17           ms=10)                # 标志点大小
    18 plt.show()

     6、绘制气泡图

     1 import matplotlib.pyplot as plt
     2 from matplotlib import cm
     3 import numpy as np
     4 
     5 # 生成指定维度(100维度)的服从标准正态分布的随机数
     6 a = np.random.randn(100)
     7 b = np.random.randn(100)
     8 
     9 # ==================绘制气泡图===================
    10 plt.scatter(x=a,                    # x轴上的数值
    11             y=b,                    # y轴上的数值
    12             s=np.power(10*a+20*b,2),# 散点标记的大小((数组a*10+数组b*20)的平方)
    13             c=np.random.rand(100),  # 散点标记的颜色
    14             cmap=cm.RdYlBu,         # 将浮点数映射成颜色的颜色映射率
    15             marker="o")             # 标记点(气泡)
    16 plt.show()

     7、绘制棉棒图

     1 import matplotlib.pyplot as plt
     2 import numpy as np
     3 
     4 # 从0到2pi取20个数
     5 x = np.linspace(0.5,2*np.pi,20)
     6 
     7 # 生成指定维度(20维度)的服从标准正态分布的随机数
     8 y = np.random.randn(20)
     9 
    10 # ====================绘制棉棒图=================
    11 plt.stem(x,             # 指定棉棒的x轴基线上的位置
    12          y,             # 绘制棉棒的长度
    13          linefmt="-",   # 棉棒的样式
    14          markerfmt="o", # 棉棒末端的样式
    15          basefmt="-")   # 指定基线的样式
    16 plt.show()

     8、绘制箱线图

     1 import  matplotlib
     2 import  matplotlib.pyplot as plt
     3 import numpy as np
     4 
     5 # 显示中文标识
     6 matplotlib.rcParams["font.sans-serif"] = ["SimHei"]
     7 matplotlib.rcParams["axes.unicode_minus"] = False
     8 
     9 # 生成指定维度(1000维度)的服从标准正态分布的随机数
    10 x = np.random.randn(1000)
    11 
    12 # ===================绘制箱线图=====================
    13 plt.boxplot(x)
    14 
    15 plt.xticks([1],["随机数生成器AlphaRM"])
    16 
    17 # y轴上的标签
    18 plt.ylabel("随机数值")
    19 
    20 # 标题
    21 plt.title("随机数生成器抗干扰能力的稳定性")
    22 
    23 # 绘制网格线
    24 plt.grid(axis="y",      # 在y轴上绘制网格线
    25          ls=":",        # 网格线样式
    26          color="gray",  # 网格线颜色
    27          alpha=0.4)     # 网格线透明度
    28 plt.show()

     9、绘制误差棒图

     1 import matplotlib.pyplot as plt
     2 import numpy as np
     3 
     4 # 从0.1到0.6区6个值
     5 x = np.linspace(0.1,0.6,6)
     6 
     7 # 指数函数
     8 y = np.exp(x)
     9 
    10 # ===================绘制误差棒图==================
    11 plt.errorbar(x=x,           # 数据点的水平位置
    12              y=y,           # 数据点的垂直位置
    13              fmt="bo:",     # 数据点的标记样式以及相互之间连接线样式
    14              yerr=0.2,      # y轴方向的数据点的误差计算方法
    15              xerr=0.02,     # x轴方向的数据点的误差计算方法
    16              ecolor="r",    # 误差棒的颜色
    17              elinewidth=2,  # 误差棒线条的粗细大小
    18              capsize=10,    # 误差棒边界横杠的大小
    19              capthick=4,    # 误差棒边界横杠的厚度
    20              ms=10,         # 数据点的大小
    21              mfc="g",       # 数据点的颜色
    22              mec="m")       # 数据点边缘的颜色
    23 # x轴上的刻度
    24 plt.xlim(0,0.7)
    25 plt.show()

  • 相关阅读:
    Mac 快速进入mysql命令行
    Vuex 的使用 State Mutation Getter Action
    Vuex状态管理
    路由模块化
    Vue中路由的嵌套
    Vue路由编程式导航以及hash模式
    Vue动态路由 Get传值
    Vue中的路由 以及默认路由跳转
    Vue非父子组件传值
    父组件主动获取子组件的数据和方法 和 子组件主动获取父组件的数据和方法
  • 原文地址:https://www.cnblogs.com/zhaco/p/11541082.html
Copyright © 2011-2022 走看看