import matplotlib.pyplot as plt

#!/usr/bin/env python
#-*- coding: utf-8 -*-
import math
import random
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
from wrTXT import ReadDataTxt

def test_01():
    x = np.linspace(0, 10, 40)
    
    plt.figure(1)  #创建画板1
    plt.subplot(221)  #进入221区域作图
    # plt.plot(x, np.sin(x), 'g', label="sin(x)", linewidth = 2.5 )  # green linewidth 2.5
    plt.plot(x, np.sin(x), color='#2DCCD3', label="sin(x)", linewidth = 2.5, marker='^', linestyle='--')  # green linewidth 2.5
    plt.legend(loc="upper right") # 设置label为位置,显示在右上角
    plt.axhline(y = 0.8, ls='--', c='r', linewidth = 2.5) #绘制平行于x轴y=0.8的水平参考线
    plt.ylim(-1.5, 1.5)

    # 绘制垂直于x轴x<4 and x>6的参考区域,以及y轴y<0.2 and y>-0.2的参考区域
    plt.axvspan(xmin=4, xmax=6, facecolor='r', alpha=0.3) # 垂直x轴
    plt.axhspan(ymin=-0.2, ymax=0.2, facecolor='y', alpha=0.3);  # 垂直y轴

    # 添加注释文字sin(x)
    plt.text(8.0, 1.5, 'sin(x)', weight='bold', color='g', fontsize=15) # 8.0, 1.5 is x, y

    # 用箭头标出第一个峰值
    plt.annotate('maximum',xy=(np.pi/2, 1),xytext=(np.pi/2+1, 1),
             weight='bold',
             color='r',
             arrowprops=dict(arrowstyle='->', connectionstyle='arc3', color='r'), fontsize=15)

    plt.title('BUAA 01', fontsize=20)     # 指定221区域的图的标题
    plt.axis('equal')   # 指定221区域的 x, y比例为一比一
    plt.xlabel('variable x', fontsize=15) # 指定x坐标轴标题,可设置字体大小
    plt.ylabel('value y', fontsize=15) # 指定y坐标轴标题,可设置字体大小
    plt.grid() # 显示网格

    plt.subplot(222) #进入222区域作图
    plt.plot(x, np.sin(x), 'r-o', label="sin x") # red -o
    plt.legend(loc="upper right")  # 设置label为位置,显示在右上角
    plt.title('BUAA 02')     # 指定111区域的图的标题
    plt.axis('equal')   # 指定111区域的 x, y比例为一比一
    plt.grid()

    plt.subplot(223) #进入223区域作图
    plt.scatter(x, np.sin(x))
    plt.title('BUAA 03')     # 指定111区域的图的标题
    plt.axis('equal')   # 指定111区域的 x, y比例为一比一
    plt.grid()
    
    plt.subplot(224) #进入224区域作图
    plt.plot(x, np.sin(x), 'g--', linewidth = 2.5)  # green linewidth 2.5
    plt.title('BUAA 04')     # 指定111区域的图的标题
    plt.axis('equal')   # 指定111区域的 x, y比例为一比一
    plt.grid()

    plt.show()

# 用饼图的面积及颜色展示一组4维数据
def test_02():
    plt.figure(1)
    plt.subplot(111)
    rng = np.random.RandomState(0)
    x = rng.randn(100)
    y = rng.randn(100)
    colors = rng.rand(100)
    sizes = 1000 * rng.rand(100)

    plt.scatter(x, y, c=colors, s=sizes, alpha=0.3, cmap='viridis')
    plt.colorbar(); # 展示色阶 

    plt.show()   

# 柱状图
def test_03():
    plt.figure(1)
    plt.subplot(111)
    x = [1,2,3,4,5,6,7,8]
    y = [3,1,4,5,8,9,7,2]
    label = ['A','B','C','D','E','F','G','H']

    plt.bar(x, y, tick_label = label)
    plt.show()

if __name__ == "__main__":
    test_01()

import matplotlib.pyplot as plt_第1张图片
references:
https://mp.weixin.qq.com/s/_fcfB_Zf_zx8C1253VMpYQ
https://blog.csdn.net/sinat_36219858/article/details/79800460

你可能感兴趣的:(个人记录,python,数据可视化,plot)