1、matplotlib学习笔记matplotlib学习记录:曲线plot图示:知识点:1、函数plt.plot(x,y,ls=-,lw=2,label=plot figure)2、参数:x:x点y:y点ls:linestyle线形样式*Line Styles*= =character description= =- solid line style- dashed line style-. dash-dot line style: dotted line style= =label:图例标签3、x = np.linspace(0.5,10,1000)在0.5到10之间生产1000个小数列表4、显
2、示图例plt.legend()5、显示图形plt.show()代码:import matplotlib.pyplot as pltimport numpy as npx = np.linspace(0.5,10,1000)y = np.cos(x)plt.plot(x,y,ls=-,lw=2,label=plot figure)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
3、=scatter figure)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个范围在01之间的随机数y = np.random.rand(1000)4、x与y的数量一定要相等。代码:import matplotlib.pyplot as plt
4、import numpy as npx = np.linspace(0.5,10,1000)y = np.random.rand(1000)plt.scatter(x,y,c=r,label=scatter figure)plt.legend()plt.show()matplotlib学习记录:函数xlim()和ylim()图示: 知识点:1、设置x轴显示的范围plt.xlim(最小值,最大值)2、设置y轴显示的范围plt.ylim(最小值,最大值)代码:import matplotlib.pyplot as pltimport numpy as npx = np.linspace(0.5,1
5、0,1000)y = np.random.rand(1000)plt.scatter(x,y,c=r,label=scatter figure)plt.legend()plt.xlim(4,10) # 设置x轴显示的刻度范围在4-10plt.ylim(0.2,0.8) # 设置y轴显示的刻度范围在0.2-0.8plt.show()matplotlib学习记录:设置x轴标签和y轴标签图示:知识点:1、使中文可正常显示import matplotlib as mplmpl.rcParamsfont.sans-serif = SimHeimpl.rcParamsaxes.unicode_minus
6、= False2、设置x轴标签plt.xlabel(“x轴标签”)3、设置y轴标签plt.ylabel(“y轴标签”)代码:import matplotlib.pyplot as pltimport numpy as npimport matplotlib as mplmpl.rcParamsfont.sans-serif = SimHeimpl.rcParamsaxes.unicode_minus = Falsex = np.linspace(0.5,10,1000)y = np.random.rand(1000)plt.scatter(x,y,c=r,label=scatter figur
7、e)plt.legend()plt.xlabel(x轴标签)plt.ylabel(y轴标签)plt.show()matplotlib学习记录:刻度线的网格线grid()图示:知识点:1、显示刻度线的网格线plt.grid(ls=”-.”,c=”r”)代码:import matplotlib.pyplot as pltimport numpy as npimport matplotlib as mplmpl.rcParamsfont.sans-serif = SimHeimpl.rcParamsaxes.unicode_minus = Falsex = np.linspace(0.5,10,10
8、00)y = np.cos(x)plt.plot(x,y,ls=-,lw=2,label=plot figure)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、添加多条绘制辅助线的代码则会多画辅助线代码:import matplotlib.pyplot as pltimport
9、numpy as npimport matplotlib as mplmpl.rcParamsfont.sans-serif = SimHeimpl.rcParamsaxes.unicode_minus = Falsex = np.linspace(0.5,10,1000)y = np.cos(x)plt.plot(x,y,ls=-,lw=2,label=plot figure)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)pl
10、t.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和xmax3、参数:facecolor=y:设置辅助区域的颜色alpha=0.5:透明度4、如果添加多条创建语句,会创建多条辅助区域代码:import matplotlib.pyplot as pltim
11、port numpy as npimport matplotlib as mplmpl.rcParamsfont.sans-serif = SimHeimpl.rcParamsaxes.unicode_minus = Falsex = np.linspace(0.5,10,1000)y = np.cos(x)plt.plot(x,y,ls=-,lw=2,label=plot figure)plt.legend()plt.axhspan(ymin=0,ymax=0.25,facecolor=y,alpha=0.5)plt.axvspan(xmin=4,xmax=5,facecolor=r,alp
12、ha=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=
13、arc3, # 连接样式 color=b # 颜色 ) 2、参数:arrowstyle代表指示线样式:-,-,-,-,|-|,simple,fancy,wedgeconnectionstyle:angle,angleA=0,angleB=75,rad=5angleA 注解文本方angleB 箭头指向方rad 转角圆弧半径-angle3,angleA=20,angleB=70由A与B的角度自然形成圆弧-arc,angleA=180,armA=50,angleB=90,armB=50,rad=5armA 臂长-arc3,rad=0.1rad 直线连接与圆弧的距离-bar,armA=50,armB=
14、50,fraction=0.1armA与armB数字同时起作用fraction会与arm进行累加代码:import matplotlib.pyplot as pltimport numpy as npimport matplotlib as mplmpl.rcParamsfont.sans-serif = SimHeimpl.rcParamsaxes.unicode_minus = Falsex = np.linspace(0.05,10,1000)y = np.sin(x)plt.plot(x,y,ls=-,lw=2,label=plot figure)plt.legend()plt.ann
15、otate(注释文本, # 注释内容 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
16、)2、参数:在坐标为(5,0)的位置添加一个文本,颜色为红色,字号163、matplotlib中很多参数都是通用的,可以去尝试之前有介绍过的参数,比如这个text中也可以添加alpha参数的。代码:import matplotlib.pyplot as pltimport numpy as npimport matplotlib as mplmpl.rcParamsfont.sans-serif = SimHeimpl.rcParamsaxes.unicode_minus = Falsex = np.linspace(0.05,10,1000)y = np.sin(x)plt.plot(x,y
17、,ls=-,lw=2,label=plot figure)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代码:import matplotlib.pyplot as pltimport numpy as npimport matplotlib as mplmpl.rcParamsfo
18、nt.sans-serif = SimHeimpl.rcParamsaxes.unicode_minus = Falsex = np.linspace(0.05,10,1000)y = np.sin(x)plt.plot(x,y,ls=-,lw=2,label=plot figure)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(l
19、oc=4)2、loc参数,可以取字符串,也可以取数字,但数字不要带引号0 best1 upper right2 upper left3 lower left4 lower right5 right6 center left7 center right8 lower center9 upper center10 center代码:import matplotlib.pyplot as pltimport numpy as npimport matplotlib as mplmpl.rcParamsfont.sans-serif = SimHeimpl.rcParamsaxes.unicode_m
20、inus = Falsex = np.linspace(0.05,10,1000)y = np.sin(x)plt.plot(x,y,ls=-,lw=2,label=plot figure)plt.legend(loc=4) # lower right 右下plt.show()matplotlib学习记录:综合图例:matplotlib结构图示:代码:import matplotlib.pyplot as pltimport numpy as npimport matplotlib as mplfrom matplotlib import cm as cmmpl.rcParamsfont.sa
21、ns-serif = SimHeimpl.rcParamsaxes.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曲线)for spine in plt.gca().spines.keys(): if spine = top or spine = right: plt.gca().spinesspine.se
22、t_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,fac
23、ecolor=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=-, connections
24、tyle=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,
25、-2.7,| is tickline,weight=bold,color=b)plt.text(3.6,-2.95,3.5 is tickline,weight=bold,color=b)plt.title(matplotlib结构)plt.show()matplotlib学习记录:柱状图bar()图示: 知识点:1、从数据库中得到数据先定义了一个sql语句:sql = SELECT MONTH(经营部下单日期),COUNT(1) FROM 合同评审 WHERE 经营部下单日期 BETWEEN -01-01 AND -12-31 GROUP BY MONTH(经营部下单日期) ORDER BY
26、 MONTH(经营部下单日期).format(年份,年份)然后调用了一个mdb_query()方法:result_list = db.mdb_query(sql)db.py中封装了连接数据库、查询数据库、执行数据库操作的语句:# -*- coding:utf-8 -*-_author_ = 86*20#导入模块import pymssql#定义conndef mdb_conn(): conn = pymssql.connect(ip, username, password, databasename) return conn#增删改def mdb_sqlext(sql): try: conn
27、= mdb_conn() cur = conn.cursor() cur.execute(sql) mit() cur.close() conn.close() return True except: return False#查询记录def mdb_query(sql): try: conn = mdb_conn() cur = conn.cursor() cur.execute(sql) result = cur.fetchall() cur.close() conn.close() return result except Exception as e: print(e) return 返回的数量是一个列表,列表中每一项元组,序号0对应MONTH(经营部下单日期),这是月份,序号1对应COUNT(1),这是合同数量。使用列表推导式将每项的0元素取出,即月份x = i0 for i in result_list再得到1为订单数合计y = i1 for i in result_listx轴的标签是月份,正好跟x一样xlabel = i0 for i in result_li
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1