Python matplotlib入门级绘制图形(一)--利用plot()绘制简单图形

目录

简介

组成元素

plot()--展现变量的变化趋势

设置坐标轴样式(label,ticks,lim等的设置)

plt.grid()--设置网格

绘制参考线与参考域(axvline()与axspan()函数)

plt.text()--标记坐标点

plt.legend()--绘制图例

plt.title()--设置标题

plt.annotate()--添加图形内容细节的指向型注释文本

plt.savefig()与plt.show()--保存与显示图像

完整代码


写这篇文章时已经学matplotlib2个多月了,期间遇到好多困难,因此决定写下这篇文章帮助那些初学matplotlib的人。入门一和二对于平常使用python统计数据已经够用了,不过如果想要进一步深入理解,可以看下入门三。

简介

matplotlib是python的一个库,内部储存了大量的函数用于绘制图像,通常会与pandas和numpy库一起使用,平常我们通常只是用里面的pyplot模块。通过pip3 install matplotlib即可下载。

首先先引入库

import matplotlib.pyplot as plt
import numpy as np

#下面两条语句根据电脑系统,选取一条,引入中文字体,防止绘图时输入中文无法出现字体
plt.rcParams["font.sans-serif"]=["Heiti TC"]#mac系统
plt.rcParams["font.sans-serif"]=["SimHei"]#windows系统

plt.rcParams["axes.unicode_minus"]=False#使坐标轴上的负坐标能正常出现

plt.figure(figsize=(6,6))#创建6*6大小的窗口

组成元素

plot()--展现变量的变化趋势

x=np.linspace(start,end,num,endpoint)
y=np.sin(x)
plt.plot(x,y,ls="-",lw=2,label="y=sin(x)",c="c",alpha=0.9)

Python matplotlib入门级绘制图形(一)--利用plot()绘制简单图形_第1张图片Python matplotlib入门级绘制图形(一)--利用plot()绘制简单图形_第2张图片

首先介绍一下numpy里的linspace(),这里的参数start,end,num,endpoint表示若endpoint=True(默认为True)在区间[start,end]均匀选取num个数据;反之,若endpoint为False,则区间变为[start,end)。

plt.plot()内的参数

x:x坐标

y:y坐标

ls:也可写成linestyle,表示函数的表示形式常见的有":" 、"-." 、"-" 、"--"、""

lw:也可写成linewidth,表示的是线条的宽度

label:直线的图例,通常需要在使用plt.plot()后使用plt.legend()使图例加载出来

c:为color的的省写,表示颜色

marker:坐标点的形状常见的有"o"、"*"

alpha:控制颜色透明度0~1

而当ls="",marker="o"时为散点图

数据够多就能化直为曲

设置坐标轴样式(label,ticks,lim等的设置)

plt.xlabel("x-axis")
plt.ylabel("y-axis")
plt.xticks(list1,list2,rotation=45,fontsize=12)
plt.yticks(fontsize=12)
plt.xlim(0,np.pi*2)
plt.ylim(-1.5,1.5)

若无list1 和list2


Python matplotlib入门级绘制图形(一)--利用plot()绘制简单图形_第3张图片

 plt.xlable(),和plt.ylabel(),均为为x与y轴添加轴标题

plt.xticks()和plt.yticks()中:

rotation:用于设置参数的旋转,可不使用

fontsize:设置坐标轴刻度上字体大小,可不使用

list1:刻度上只显示list1中的值,可不使用

list2:将list1中的值化为list2,可不使用,但使用list2必须使用list1否则,坐标轴可能找不到这些数据例如中文...

plt.xlim(a,b)与plt.ylim(a,b)用于设置x轴y轴显示范围在a到b

#r"$内容$"可以将一些符号用印刷体打出,如若要打出,一般情况下会出现方框,但用这条语句,可以顺利打印出来

如下方示例代码

plt.xlabel("x-axis")
plt.ylabel("y-axis")
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r"-$\pi$",r"$-\pi/2$",0,r"$\pi/2$",r"$\pi$"],fontsize=10)
plt.yticks(fontsize=12)
plt.xlim(0,np.pi*2)
plt.ylim(-1.5,1.5)

 Python matplotlib入门级绘制图形(一)--利用plot()绘制简单图形_第4张图片

plt.grid()--设置网格

plt.grid(axis="y",ls=":",lw=2,c="c",alpha=0.8)

Python matplotlib入门级绘制图形(一)--利用plot()绘制简单图形_第5张图片

 axis:表示只表示y轴,如果不填该参数,默认x,y轴都显示

ls:也可写成linestyle,表示函数的表示形式常见的有":" "-." "-" "--"

lw:也可写成linewidth,表示的是线条的宽度

c:为color的的省写,表示颜色

alpha:控制颜色透明度0~1

绘制参考线与参考域(axvline()与axspan()函数)

plt.axvline(x=np.pi,c="black",ls="-",lw=2)
plt.axhline(y=0.0,c="black",lw=2,ls="-")

Python matplotlib入门级绘制图形(一)--利用plot()绘制简单图形_第6张图片

plt.axvline():表示绘制一条垂直(vertical)于x轴的宽度为2的连续黑直线也就是x=(代码中).

plt.axhline():表示绘制一条垂直(horizon)于x轴的宽度为2的连续黑直线也就是y=0(代码中).

plt.axvspan(xmin=np.pi/2,xmax=np.pi/2*3,facecolor="gray",alpha=0.4)
plt.axhspan(ymin=-1,ymax=1,facecolor="rosybrown",alpha=0.4)

Python matplotlib入门级绘制图形(一)--利用plot()绘制简单图形_第7张图片

同理,axspan()表示绘制垂直于x轴的带状领域,axspan()表示绘制垂直于y轴的领域。

facecolor:为领域颜色,可简写为fc

alpha:控制颜色透明度0~1

plt.text()--标记坐标点

#标记少量数据
plt.text(x,y,string,c,alpha,fontsize)

#标记大量数据(通常用作标记柱状图数据)
for a,b in zip(x,y):
    plt.text(a,b,b,c,alpha,fontsize,ha,va)

Python matplotlib入门级绘制图形(一)--利用plot()绘制简单图形_第8张图片

string为显示的内容如图中就为

plt.text(np.pi,0,"(pi,0)",c="black",alpha=0.7,fontsize=12)

在第二组代码中,xy为数据坐标,ha:为水平位置,一般设置为"center"比较美观,va:为垂直数据,一般显示为:":bottom"(最好在plt.bar()(绘制柱状图)后使用)

plt.legend()--绘制图例

plt.legend()当你发现其它函数的label填写后却没有显示图例,往往是漏了legend()函数

其内有一个参数控制图例位置

以下参数均可不使用

plt.legend(loc,edgecolor,frameon,facecolor)

Python matplotlib入门级绘制图形(一)--利用plot()绘制简单图形_第9张图片

loc:图例位置由俩部分组成upper或lower和left或right组合而成如:"upper right"

edgecolor:设置图例边框颜色

frameon:设置图例是否有边框,默认True

facecolor:图例背景颜色

plt.title()--设置标题

plt.title(string)

产生string标题

plt.annotate()--添加图形内容细节的指向型注释文本

plt.annotate("maximum",
            xy=(np.pi/2,1),
            xytext=(np.pi/2-1.4,1.1),
            color="dodgerblue",
            alpha=0.7,
            weight="bold",
            fontsize=12,
            arrowprops=dict(arrowstyle="->",connectionstyle="arc3",color="b"))

Python matplotlib入门级绘制图形(一)--利用plot()绘制简单图形_第10张图片

 xy:箭头指向的坐标点

xytext:文本内容出现的位置

weight:注释文本字体粗细风格

arrowprops:指示被注释内容箭头的字典

plt.savefig()与plt.show()--保存与显示图像

plt.savefig(path)

plt.show()显示图像

完整代码

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams["font.sans-serif"]=["Heiti TC"]
plt.rcParams["axes.unicode_minus"]=False

x=np.linspace(-np.pi,np.pi,1000)
y=np.sin(x)
plt.plot(x,y,linestyle="-",lw=2,label="y=sin(x)",alpha=0.2)
plt.xlabel("x-axis")
plt.ylabel("y-axis")
plt.xticks(rotation=45,fontsize=12)
plt.yticks(fontsize=12)
plt.xlim(-np.pi*2,np.pi*2)
plt.ylim(-1.5,1.5)
plt.grid(axis="y",ls=":",lw=2,c="c",alpha=0.7)
plt.axvline(x=0.0,c="black",ls="-",lw=2)
plt.axhline(y=0.0,c="black",lw=2,ls="-")
plt.axvspan(xmin=-9,xmax=9,fc="gray",alpha=0.4)
#plt.axhspan(ymin=-1,ymax=1,fc="rosybrown",alpha=0.4)
plt.text(0,0,"(0,0)",c="black",alpha=0.7,fontsize=12)
plt.legend(loc="upper right",edgecolor="black",frameon=True,facecolor="gray")
plt.fill_between(x,y,0,facecolor="gray",alpha=0.4)
plt.annotate("maximum",xy=(np.pi/2,1),xytext=(np.pi/2-1.4,1.1),color="dodgerblue",alpha=0.7,weight="bold",fontsize=12,arrowprops=dict(arrowstyle="->",connectionstyle="arc3",color="b"))
plt.savefig(path)
plt.show()

Python matplotlib入门级绘制图形(一)--利用plot()绘制简单图形_第11张图片

 萌新第一篇文章给个赞呗

入门级(二)通道

你可能感兴趣的:(matplotlib入门,Python,绘图,jupyter,pycharm,python)