matplotlib学习

matplotlib是python中重要的绘图库,可用于数据可视化。

# -*- coding: cp936 -*-

import numpy as np

import matplotlib.pyplot as plt

def run():

    #-pi和pi之间取256个点,并包含最后一个点

    x = np.linspace(-np.pi, np.pi, 256, endpoint=True)

    #e为cosx, f为sin(x)

    c, d = np.cos(x), np.sin(x)

    plt.figure(1) #指定图1

    plt.plot(x, c, color='blue', linewidth=1.0, linestyle='-', label="Cos", alpha=0.1)

    #*表示线型为由*点构成

    plt.plot(x, d, "r*", label='Sin')

    plt.title("Cos&Sin")

    ax=plt.gca()

    #spines表示四周的线

    ax.spines["right"].set_color("none")

    ax.spines["top"].set_color("none")

    #坐标轴起始设置

    ax.spines["left"].set_position(("data", 0))

    ax.spines["bottom"].set_position(("data", 0))#此处为两个括弧

    #20180425

    ax.xaxis.set_ticks_position('bottom')        #设置x轴的标注位于bottom轴

    ax.yaxis.set_ticks_position('left')

    plt.yticks(np.linspace(-np.pi,np.pi,5,endpoint=True))

    plt.yticks(np.linspace(-1,1,5,endpoint=True))

    for label in ax.get_xticklabels()+ax.get_yticklabels():

        #改变label的大小

        label.set_fontsize(16)

        #设置label的小方块及其背景

        label.set_bbox(dict( edgecolor="None",facecolor='white'))

    #标注sin和cos的图例

    plt.legend(loc='upper left')

    #显示网格线

    plt.grid()

    #当x绝对值小于0.5,为真记为1,此范围内从1开始到曲线cosx填充,其余为0开始到曲线cosx填充,c>0.5确定横轴范围x,保证c=cosx>0.5

    plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color='green',alpha=0.1)

    plt.show()

run()

猜你喜欢

转载自blog.csdn.net/dooooos/article/details/80084940