zoukankan      html  css  js  c++  java
  • python 用 matplotlib 绘制组合图形 1

    1、加载库

    import numpy as np
    import matplotlib as mpl
    import matplotlib.pyplot as plt

     2、绘制图形

    # 定义数据
    np.random.seed(428)
    x = np.linspace(0.5, 3.5, 100)  # 在 [a, b] 间隔均匀的 100 个数
    y1 = np.sin(x)
    y2 = np.random.randn(100)
    
    # 图表元素中正常显示中文字符
    mpl.rcParams['font.sans-serif'] = 'SimHei'
    # 坐标轴刻度标签正常显示负号
    mpl.rcParams['axes.unicode_minus'] = False
    
    # 设置画布
    fig = plt.figure(figsize=(14, 8),    # 画布大小
                     facecolor='lightyellow')  # 画布的背景色
    # 折线图
    plt.plot(x, y1,
             ls='-.',
             lw=2,
             label='正弦曲线')
    # 散点图
    plt.scatter(x, y2,
                color='0.6',    # 标记点的灰度值颜色
                edgecolor='green',    # 标记点的边线颜色
                linewidth=0.25,    # 标记点边线的宽度
                label='散点')
    
    # 设置坐标轴的刻度范围
    plt.xlim(xmin=0,    # x 轴上的最小值
             xmax=4)    # x 轴上的最大值
    plt.ylim(ymin=-3,    # y 轴上的最小值
             ymax=3);    # y 轴上的最大值
    
    # 设置坐标轴标题
    plt.xlabel(s='x 轴', size=12, color='cyan')
    plt.ylabel(s='y 轴', size=12, color='cyan')
    
    # 设置坐标轴刻度
    plt.xticks(size=14, color='grey')
    plt.yticks(size=14, color='grey')
    
    # 设置图形标题
    plt.title(s='matplotlib 的图形结构',    # 标题的文本内容
              size=18,    # 标题文本的字体大小
              color='k')    # 标题文本的颜色
    
    # 设置图例
    plt.legend(fontsize=14)
    
    # 添加水平参考线
    plt.axhline(y=0,    # 参考线的垂直与 y 轴的刻度
                linestyle='--',    # 参考线的线条风格 破折线
                color='red',    # 参考线的颜色 红色
                linewidth=2)    # 参考线的线条宽度
    
    # 添加垂直参考区域
    plt.axvspan(xmin=1.0,    # 参考区域的其实位置
                xmax=2.0,    # 参考区域的终止位置
                facecolor='yellow',    # 参考区域的填充颜色
                alpha=0.3)    # 参考区域填充颜色的透明度
    
    # 添加指向型文本注释
    ## 对极值点的指向指向型注释
    plt.annotate(s='极大值点(π/2, 1)',  # 注释的内容文本
                 xy=(np.pi/2, 1),  # 被注释内容的坐标位置
                 xytext=(np.pi/2+1.0, 0.8),  # 注释文本的坐标位置
                 weight='bold',  # 注释文本的字体粗细风格
                 color='red',  # 注释文本的字体颜色
                 
                 # 指示注释内容的箭头的属性字典
                 arrowprops=dict(arrowstyle='->',    # 箭头风格
                                 connectionstyle='arc3',
                                 color='red'))    # 箭头颜色 
    
    ## 对区域的注释
    ### 箭头
    plt.annotate(s='区域',    # 注释的内容文本
                 xy=(0.75, -3),    # 被注释内容的坐标位置
                 xytext=(0.35, -2.25),  # 注释文本的坐标位置
                 weight='bold',  # 注释文本的字体粗细风格
                 color='blue',  # 注释文本的字体颜色
                 
                 # 指示注释内容的箭头的属性字典
                 arrowprops=dict(arrowstyle='->',    # 箭头风格
                                 connectionstyle='arc3',
                                 color='blue'))    # 箭头颜色
    
    ### 箭头
    plt.annotate(s='',    # 注释的内容文本
                 xy=(0, -2.78),    # 被注释内容的坐标位置
                 xytext=(0.4, -2.32),  # 注释文本的坐标位置
                 
                 # 指示注释内容的箭头的属性字典
                 arrowprops=dict(arrowstyle='->',    # 箭头风格
                                 connectionstyle='arc3',
                                 color='blue'))    # 箭头颜色
    
    ## 对刻度线的注释
    plt.annotate(s="'|'是刻度线",    # 注释的内容文本
                 xy=(3.5, -2.89),    # 被注释内容的坐标位置
                 xytext=(3.6, -2.7),  # 注释文本的坐标位置
                 size=10,    # 字体大小
                 weight='bold',    # 注释文本内容的字体粗细风格
                 color='blue',   # 注释内容的字体颜色
                 
                 # 指示注释内容的箭头的属性字典
                 arrowprops=dict(arrowstyle='->',    # 箭头风格
                                 connectionstyle='arc3',
                                 color='blue'))    # 箭头颜色
    
    ## 对刻度标签的的注释
    plt.text(x=3.6,   # 注释内容所在的横轴坐标
             y=-2.95,    # 注释内容所在的纵轴坐标
             s='3.5 是刻度标签',    # 注释的文本内容
             size=10,    # 字体大小
             weight='bold',    # 注释文本内容的字体粗细风格
             color='blue');    # 注释内容的字体颜色
    
    # 设置网格线
    plt.grid(b=True,
             ls=':',    # 线条样式为虚线
             color='Magenta',   # 网各线颜色为品红
             alpha=0.55);    # 网格线透明度

    图形

  • 相关阅读:
    2017 湖南省赛 K Football Training Camp
    一些相似单词的区别之处
    LeetCode301. Remove Invalid Parentheses
    算法刷题细节点总结
    LeetCode765. Couples Holding Hands
    LeetCode741. Cherry Pickup
    LeetCode312. Burst Balloons
    LeetCode679. 24 Game
    LeetCode862. Shortest Subarray with Sum at Least K
    LeetCode818. Race Car
  • 原文地址:https://www.cnblogs.com/shanger/p/13054311.html
Copyright © 2011-2022 走看看