matplotlib学习笔记.docx

上传人:b****7 文档编号:25675060 上传时间:2023-06-11 格式:DOCX 页数:56 大小:814.61KB
下载 相关 举报
matplotlib学习笔记.docx_第1页
第1页 / 共56页
matplotlib学习笔记.docx_第2页
第2页 / 共56页
matplotlib学习笔记.docx_第3页
第3页 / 共56页
matplotlib学习笔记.docx_第4页
第4页 / 共56页
matplotlib学习笔记.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

matplotlib学习笔记.docx

《matplotlib学习笔记.docx》由会员分享,可在线阅读,更多相关《matplotlib学习笔记.docx(56页珍藏版)》请在冰豆网上搜索。

matplotlib学习笔记.docx

matplotlib学习笔记

matplotlib学习记录:

曲线plot

图示:

知识点:

1、函数

plt.plot(x,y,ls="-",lw=2,label="plotfigure")

2、参数:

x:

x点

y:

y点

ls:

linestyle线形样式

**LineStyles**

============================================

characterdescription

============================================

``'-'``solidlinestyle

``'--'``dashedlinestyle

``'-.'``dash-dotlinestyle

``':

'``dottedlinestyle

============================================

label:

图例标签

3、x=np.linspace(0.5,10,1000)

在0.5到10之间生产1000个小数列表

4、显示图例

plt.legend()

5、显示图形

plt.show()

代码:

importmatplotlib.pyplotasplt

importnumpyasnp

x=np.linspace(0.5,10,1000)

y=np.cos(x)

plt.plot(x,y,ls="-",lw=2,label="plotfigure")

plt.legend()

plt.show()

matplotlib学习记录:

散点图scatter

图示:

知识点:

1、函数

x=np.linspace(0.5,10,1000)

y=np.random.rand(1000)

plt.scatter(x,y,c="r",label="scatterfigure")

2、c为颜色模式

#缩写模式

#b-蓝色g-绿色r-红色c-青色m-洋红色y-黄色k-黑色w-白色

plt.title("折线图",color="r")

#十六进制模式

plt.xlabel("x轴",color="#ccccff")

#CSS颜色名

plt.ylabel("y轴",color="red")

#Decimal模式

plt.text(2.75,0.2,"text",color=[0,0,0])

3、产生1000个范围在0~1之间的随机数

y=np.random.rand(1000)

4、x与y的数量一定要相等。

代码:

importmatplotlib.pyplotasplt

importnumpyasnp

x=np.linspace(0.5,10,1000)

y=np.random.rand(1000)

plt.scatter(x,y,c="r",label="scatterfigure")

plt.legend()

plt.show()

matplotlib学习记录:

函数xlim()和ylim()

图示:

知识点:

1、设置x轴显示的范围

plt.xlim(最小值,最大值)

2、设置y轴显示的范围

plt.ylim(最小值,最大值)

代码:

importmatplotlib.pyplotasplt

importnumpyasnp

x=np.linspace(0.5,10,1000)

y=np.random.rand(1000)

plt.scatter(x,y,c="r",label="scatterfigure")

plt.legend()

plt.xlim(4,10)#设置x轴显示的刻度范围在4-10

plt.ylim(0.2,0.8)#设置y轴显示的刻度范围在0.2-0.8

plt.show()

matplotlib学习记录:

设置x轴标签和y轴标签

图示:

知识点:

1、使中文可正常显示

importmatplotlibasmpl

mpl.rcParams['font.sans-serif']=['SimHei']

mpl.rcParams['axes.unicode_minus']=False

2、设置x轴标签

plt.xlabel(“x轴标签”)

3、设置y轴标签

plt.ylabel(“y轴标签”)

代码:

importmatplotlib.pyplotasplt

importnumpyasnp

importmatplotlibasmpl

mpl.rcParams['font.sans-serif']=['SimHei']

mpl.rcParams['axes.unicode_minus']=False

x=np.linspace(0.5,10,1000)

y=np.random.rand(1000)

plt.scatter(x,y,c="r",label="scatterfigure")

plt.legend()

plt.xlabel("x轴标签")

plt.ylabel("y轴标签")

plt.show()

matplotlib学习记录:

刻度线的网格线grid()

图示:

知识点:

1、显示刻度线的网格线

plt.grid(ls=”-.”,c=”r”)

代码:

importmatplotlib.pyplotasplt

importnumpyasnp

importmatplotlibasmpl

mpl.rcParams['font.sans-serif']=['SimHei']

mpl.rcParams['axes.unicode_minus']=False

x=np.linspace(0.5,10,1000)

y=np.cos(x)

plt.plot(x,y,ls="-",lw=2,label="plotfigure")

plt.legend()

plt.grid(ls="-.",c="r")

plt.show()

matplotlib学习记录:

绘制平行于x轴的水平参考线axhline()

图标:

知识点:

1、绘制辅助线

plt.axhline(y=0.2,c="r",ls="-.",lw=2)

plt.axvline(x=7,c="b",ls="-.",lw=2)

2、axh是指平行于x轴,那么axv就是垂直于x轴

3、添加多条绘制辅助线的代码则会多画辅助线

代码:

importmatplotlib.pyplotasplt

importnumpyasnp

importmatplotlibasmpl

mpl.rcParams['font.sans-serif']=['SimHei']

mpl.rcParams['axes.unicode_minus']=False

x=np.linspace(0.5,10,1000)

y=np.cos(x)

plt.plot(x,y,ls="-",lw=2,label="plotfigure")

plt.legend()

plt.axhline(y=0.2,c="r",ls="-.",lw=2)

plt.axvline(x=7,c="b",ls="-.",lw=2)

plt.axvline(x=7,c="b",ls="-.",lw=2)

plt.show()

matplotlib学习记录:

绘制平行于x轴的参考区域

图示:

知识点:

1、创建辅助区域

plt.axhspan(ymin=0,ymax=0.25,facecolor="y",alpha=0.5)

plt.axvspan(xmin=4,xmax=5,facecolor="r",alpha=0.3)

2、xh是指平行于x轴,所以需要指定y轴的一个值区域,而xv是指垂直于x轴,所以指定x轴的xmin和xmax

3、参数:

facecolor="y":

设置辅助区域的颜色

alpha=0.5:

透明度

4、如果添加多条创建语句,会创建多条辅助区域

代码:

importmatplotlib.pyplotasplt

importnumpyasnp

importmatplotlibasmpl

mpl.rcParams['font.sans-serif']=['SimHei']

mpl.rcParams['axes.unicode_minus']=False

x=np.linspace(0.5,10,1000)

y=np.cos(x)

plt.plot(x,y,ls="-",lw=2,label="plotfigure")

plt.legend()

plt.axhspan(ymin=0,ymax=0.25,facecolor="y",alpha=0.5)

plt.axvspan(xmin=4,xmax=5,facecolor="r",alpha=0.3)

plt.axvspan(xmin=6,xmax=7,facecolor="r",alpha=0.3)

plt.show()

matplotlib学习记录:

添加带有箭头的注释文本annotate()

图标:

知识点:

1、创建注释

plt.annotate("注释文本",#注释内容

xy=(np.pi/2,1),#箭头指向的坐标

size=20,#字号

xytext=((np.pi/2)+1,0.8),#注释文本坐标

weight="bold",#加粗

color="b",#颜色

arrowprops=dict(

arrowstyle="->",#箭头样式

connectionstyle="arc3",#连接样式

color="b"#颜色

))

2、参数:

arrowstyle代表指示线样式:

-,<-,->,<->,<|-,-|>,<|-|>,]-,-[,]-[,|-|,simple,fancy,wedge

connectionstyle:

angle,angleA=0,angleB=75,rad=5

angleA注解文本方

angleB箭头指向方

rad转角圆弧半径

----------------

angle3,angleA=20,angleB=70

由A与B的角度自然形成圆弧

-----------------

arc,angleA=180,armA=50,angleB=90,armB=50,rad=5

armA臂长

---------------------

arc3,rad=0.1

rad直线连接与圆弧的距离

---------------------

bar,armA=50,armB=50,fraction=0.1

armA与armB数字同时起作用

fraction会与arm进行累加

代码:

importmatplotlib.pyplotasplt

importnumpyasnp

importmatplotlibasmpl

mpl.rcParams['font.sans-serif']=['SimHei']

mpl.rcParams['axes.unicode_minus']=False

x=np.linspace(0.05,10,1000)

y=np.sin(x)

plt.plot(x,y,ls="-",lw=2,label="plotfigure")

plt.legend()

plt.annotate("注释文本",#注释内容

xy=(np.pi/2,1),#箭头指向的坐标

size=20,#字号

xytext=((np.pi/2)+1,0.8),#注释文本坐标

weight="bold",#加粗

color="b",#颜色

arrowprops=dict(

arrowstyle="->",#箭头样式

connectionstyle="arc3",#连接样式

color="b"#颜色

))

plt.show()

matplotlib学习记录:

添加没有箭头的文本text

图示:

知识点:

1、创建

plt.text(5,0,"y=sin(x)",weight="bold",c="r",size=16)

2、参数:

在坐标为(5,0)的位置添加一个文本,颜色为红色,字号16

3、matplotlib中很多参数都是通用的,可以去尝试之前有介绍过的参数,比如这个text中也可以添加alpha参数的。

代码:

importmatplotlib.pyplotasplt

importnumpyasnp

importmatplotlibasmpl

mpl.rcParams['font.sans-serif']=['SimHei']

mpl.rcParams['axes.unicode_minus']=False

x=np.linspace(0.05,10,1000)

y=np.sin(x)

plt.plot(x,y,ls="-",lw=2,label="plotfigure")

plt.legend()

plt.text(5,0,"y=sin(x)",weight="bold",c="r",size=16,alpha=0.5)

plt.show()

matplotlib学习记录:

标题title()

图示:

知识点:

1、plt.title(“标题文本”,loc=”center”)

2、loc参数:

(不同元素的loc有不同的值)

center,right,left

代码:

importmatplotlib.pyplotasplt

importnumpyasnp

importmatplotlibasmpl

mpl.rcParams['font.sans-serif']=['SimHei']

mpl.rcParams['axes.unicode_minus']=False

x=np.linspace(0.05,10,1000)

y=np.sin(x)

plt.plot(x,y,ls="-",lw=2,label="plotfigure")

plt.legend()

plt.text(5,0,"y=sin(x)",weight="bold",c="r",size=16,alpha=0.5)

plt.title("这是sin曲线",loc="right")

plt.show()

 

matplotlib学习记录:

图例lengend()

图示:

知识点:

1、显示图例

plt.legend(loc=4)

2、loc参数,可以取字符串,也可以取数字,但数字不要带引号

0best

1upperright

2upperleft

3lowerleft

4lowerright

5right

6centerleft

7centerright

8lowercenter

9uppercenter

10center

代码:

importmatplotlib.pyplotasplt

importnumpyasnp

importmatplotlibasmpl

mpl.rcParams['font.sans-serif']=['SimHei']

mpl.rcParams['axes.unicode_minus']=False

x=np.linspace(0.05,10,1000)

y=np.sin(x)

plt.plot(x,y,ls="-",lw=2,label="plotfigure")

plt.legend(loc=4)#lowerright右下

plt.show()

matplotlib学习记录:

综合图例:

matplotlib结构

图示:

代码:

importmatplotlib.pyplotasplt

importnumpyasnp

importmatplotlibasmpl

frommatplotlibimportcmascm

mpl.rcParams['font.sans-serif']=['SimHei']

mpl.rcParams['axes.unicode_minus']=False

#定义数据

x=np.linspace(0.5,3.5,100)

y=np.sin(x)

y1=np.random.randn(100)

#散点图

plt.scatter(x,y1,c="0.25",label="散点图")

#曲线

plt.plot(x,y,ls="--",lw=2,label="sin曲线")

forspineinplt.gca().spines.keys():

ifspine=="top"orspine=="right":

plt.gca().spines[spine].set_color("none")

plt.gca().xaxis.set_ticks_position("bottom")

plt.gca().yaxis.set_ticks_position("left")

plt.xlim(0,4)#设置x轴范围

plt.ylim(-3,3)#设置y轴范围

plt.ylabel("y轴")#设置标签

plt.xlabel("x轴")#设置标签

#设置网格线

plt.grid(True,ls=":

",color="r")

#添加平行于x轴的辅助线

plt.axhline(y=0,c="r",ls="--",lw=2)

#添加垂直于x轴的区域

plt.axvspan(xmin=1,xmax=2,facecolor="y",alpha=0.3)

#添加带有箭头的注释

plt.annotate("maximum",

xy=(np.pi/2,1),

xytext=((np.pi/2)+0.15,1.5),

weight="bold",

color="b",

arrowprops=dict(

arrowstyle="->",

connectionstyle="arc3",

color="r"

))

plt.annotate("spines",

xy=(0.75,-3),

xytext=(0.35,-2.25),

weight="bold",

color="b",

arrowprops=dict(

arrowstyle="->",

connectionstyle="arc3",

color="b"

))

plt.annotate("",

xy=(0,-2.78),

xytext=(0.4,-2.32),

weight="bold",

color="b",

arrowprops=dict(

arrowstyle="->",

connectionstyle="arc3",

color="b"

))

plt.annotate("",

xy=(3.5,-2.98),

xytext=(3.6,-2.7),

weight="bold",

color="b",

arrowprops=dict(

arrowstyle="->",

connectionstyle="arc3",

color="b"

))

plt.text(3.6,-2.7,"'|'istickline",weight="bold",color="b")

plt.text(3.6,-2.95,"3.5istickline",weight="bold",color="b")

plt.title("matplotlib结构")

plt.show()

matplotlib学习记录:

柱状图bar()

图示:

知识点:

1、从数据库中得到数据

先定义了一个sql语句:

sql="SELECTMONTH(经营部下单日期),COUNT

(1)FROM合同评审WHERE经营部下单日期BETWEEN'{}-01-01'AND'{}-12-31'GROUPBYMONTH(经营部下单日期)ORDERBYMONTH(经营部下单日期)".format(年份,年份)

然后调用了一个mdb_query()方法:

result_list=db.mdb_query(sql)

db.py中封装了连接数据库、查询数据库、执行数据库操作的语句:

#-*-coding:

utf-8-*-

__author__='86****20'

#导入模块

importpymssql

#定义conn

defmdb_conn():

conn=pymssql.connect(ip,username,password,databasename)

returnconn

#增删改

defmdb_sqlext(sql):

try:

conn=mdb_conn()

cur=conn.cursor()

cur.execute(sql)

mit()

cur.close()

conn.close()

returnTrue

except:

returnFalse

#查询记录

defmdb_query(sql):

try:

conn=mdb_conn()

cur=conn.cursor()

cur.execute(sql)

result=cur.fetchall()

cur.close()

conn.close()

returnresult

exceptExceptionase:

print(e)

return[]

返回的数量是一个列表,列表中每一项元组,序号0对应MONTH(经营部下单日期),这是月份,序号1对应COUNT

(1),这是合同数量。

使用列表推导式将每项的[0]元素取出,即月份

x=[i[0]foriinresult_list]

再得到[1]为订单数合计

y=[i[1]foriinresult_list]

x轴的标签是月份,正好跟x一样

xlabel=[i[0]foriinresult_li

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1