您现在的位置是:主页 > news > 专业做皮草的网站/学做网站需要学什么
专业做皮草的网站/学做网站需要学什么
admin2025/5/25 1:03:06【news】
简介专业做皮草的网站,学做网站需要学什么,Wordpress能更新到最新版本,怎样做好网站Matplotlib介绍Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式Matplotlib 包含两个模板(1) 绘图API: pyplot,绘制各类可视化图形的命令子…
Matplotlib介绍
Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发
matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式
Matplotlib 包含两个模板
(1) 绘图API: pyplot,绘制各类可视化图形的命令子库
(2)集成库: pylab,是 Matplotlib 和 Scipy、Numpy的集成库
Matplotlib 的画图方式可分为两种:inline 和 notebook
(1) inline 为静态绘图,嵌入到 jupyter notebook 中显示
(2) notebook 为交互式图,在 juputer notebook 只显示一行输出代码
import matplotlib.pyplot as plt
绘图基本步骤
实例:
# 0、导入包
import matplotlib.pyplot as plt
# 1、准备数据
x = [1, 2, 3, 4]
y = [10, 20, 30, 40]
# 2、创建图像
fig = plt.figure()
# 3、绘图
ax = fig.add_subplot(111)
ax.plot(x, y)
# 4、自定义设置
ax.set_xlim(1, 5)
# 5、保存图形(按需要使用)
plt.savefig('first_graph.png')
# 6、显示图形
plt.show()

基本绘图步骤分析:
(1) Figure:
Figure:面板(图),matplotlib中的所有图像都是位于figure对象中,一个图像只能有一个figure对象。
在第一步的创建图像方法plt.figure()中,我们可以通过传入参数来改变图像的显示属性。查阅官方文档,figure方法的参数包括figsize、dpi、facecolor、edgecolor、linewidth、frameon、subplotpars、tight_layout、constrained_layout。其中 subplotpars、tight_layout这两个参数与子图相关,暂时不详细展开,其他参数的含义如下:
figsize:图像宽高,单位为英寸。(1英寸等于2.5cm)dpi:图像分辨率,即每英寸多少个像素,默认值80。facecolor:图像背景颜色,含四个参数,(R,G,B,透明度)edgecolor:图像边框颜色。含四个参数,(R,G,B,透明度)linewidth:图像边框线宽。frameon:是否显示边框。constrained_layout:是否自动布局,若为True则使用constrained_layout,会自动调整plot的位置。
修改plt.figure(),传入相关参数,代码如下:
x = [1, 2, 3, 4]
y = [10, 20, 30, 40]
# 2、创建图像
fig = plt.figure(figsize=(3, 3), dpi=100, facecolor=(0,1,0,1), # (0,1,0,1)为颜色属性,分别为r,g,b和透明度, 此值代表绿色edgecolor=(1,0,0,1), # 红色边框frameon=True, linewidth=1)
# 3、绘图
ax = fig.add_subplot(111)
ax.plot(x, y)
# 4、自定义设置
ax.set_xlim(1, 5)
# 6、显示图形
plt.show()

Figure 详解
figure和axes,其中前者为所有绘图操作定义了顶层类对象Figure,相当于是提供了画板;而后者则定义了画板中的每一个绘图对象Axes,相当于画板内的各个子图。
换句话说,figure是axes的父容器,而axes是figure的内部元素,而我们常用的各种图表、图例、坐标轴等则又是axes的内部元素。
(2) Subplot:
Subplot:子图,figure对象下创建一个或多个subplot对象(即axes)用于绘制图像。
pyplot绘图属性
(1) pyplot的中文显示
第一种方法:rcParams
pyplot并不默认支持中文显示,需要rcParams修改字体实现
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['simhei'] #用于正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用于正常显示负号

rcParams的属性

最后再简单介绍几个比较常用的属性方法,matplotlib.rcParams[‘xtick_direction’] 、matplotlib.rcParams[‘ytick.direction’]可以设置刻度的方向,rcParams是pylot使用rc配置文件来自定义图形各种默认属性的方法,也叫rc配置或rc参数,通过rc参数可以修改图表的默认属性,包括窗体大小、每英寸的点数、线条宽度、颜色、样式、坐标轴、坐标和网络属性、文本、字体等。plt.axis(‘off’)可以关闭坐标轴,如果想只关闭x轴或y轴,可以使用frame = plt.gca()获取当前子图,然后用frame.axes.get_xaxis().set_visible(False)或frame.axes.get_yaxis().set_visible(False)对x轴或y轴设置是否显示。
中文字体的种类

实例:

第二种方法:fontproperties
在有中文输出的地方,增加一个属性:fontproperties

坐标属性
在作拥有坐标轴的图表时,我们往往需要对坐标轴进行设置,例如坐标轴的名称、坐标轴的范围、坐标轴的刻度等。
(1) 设置坐标轴的名称:plt.xlabel,plt.ylabel 分别设置x轴和y轴的标签
(2) 设置坐标轴的范围:plt.xlim, plt.ylim 分别设置x轴和y轴的大小范围。
plt.axis(xmin,xmax,ymin,ymax) 给定了坐标范围
(3) 设置刻度坐标轴的刻度:plt.xticks, plt.yticks 用于分别设置x轴和y轴的坐标轴刻度和大小、方向,以及标签大小,其同样可以用来设置坐标轴的范围(不推荐)。
有时我们会根据需求设置不同的刻度表示形式,例如小数、百分数等等,此时我们使用plt.set_xticklabels/plt.set_yticklabels。假设我们要将上述的横坐标和纵坐标的刻度都用两位小数展示
# 0、导入包
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [10, 20, 30, 40]
# 2、创建图像
fig = plt.figure(figsize=(12, 3), dpi=100, facecolor=(0,1,0,1),edgecolor=(1,0,0,1), frameon=True, linewidth=1)
# 3、绘图
ax1 = fig.add_subplot(131)
ax1.plot(x, y)
ax2 = fig.add_subplot(132) # 这里为了比较创建两个子图
ax2.plot(x, y)
ax3 = fig.add_subplot(133) # 这里为了比较创建两个子图
ax3.plot(x, y)
# 4、自定义设置
ax1.set_title('lim')
ax2.set_title('ticks')
ax3.set_title('set_yticks')
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax2.set_xlabel('x')
ax2.set_ylabel('y')
ax1.set_xlim([1, 4]) # 设置边界
ax1.set_ylim([10, 40])
ax2.set_xticks(range(1, 5)) # 设置刻度
ax2.set_yticks([(i*10) for i in range(1, 5)])ax3.set_xticklabels('%.2f' %i for i in range(1, 5)) # 设置刻度表示形式
ax3.set_yticklabels('%.2f' %(i*5) for i in range(2, 9))
# 5、保存图形(按需要使用)
plt.savefig('02.png')
plt.show()

线条属性
在第3步绘图的ax.plot()方法中,我们可以通过传入参数来改变线条的显示属性。常见的有color、 marker、linestyle、linewidth等。
color:线条颜色。常用的有r红, g绿, b蓝, c青, m紫红, y黄, k黑, w白。marker:坐标点标记。
标记maker 描述
‘o’ 圆圈
‘.’ 点
‘D’ 菱形
‘s’ 正方形
‘h’ 六边形1
‘*’ 星号
‘H’ 六边形2
‘d’ 小菱形
‘_’ 水平线
‘v’ 一角朝下的三角形
‘8’ 八边形
‘<’ 一角朝左的三角形
‘p’ 五边形
‘>’ 一角朝右的三角形
‘,’ 像素
‘^’ 一角朝上的三角形
‘+’ 加号
‘ ‘ 竖线
‘None’,’’,’ ‘ 无
‘x’ X
linestyle:线条形状。如"--","-", '-.'等。linewidth: 线条宽度。
如果这两种颜色不够用,还可以通过两种其他方式来定义颜色值:
1、使用HTML十六进制字符串 color=’#123456’ 使用合法的HTML颜色名字(’red’,’chartreuse’等)。
2、也可以传入一个归一化到[0,1]的RGB元祖。 color=(0.3,0.3,0.4)
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [10, 20, 30, 40]
fig = plt.figure(figsize=(3, 3), dpi=100, facecolor=(1,1,1,1),edgecolor=(1,0,0,1), frameon=True, linewidth=1)
ax = fig.add_subplot(111)
ax.plot(x, y, color='y', marker='D', linestyle='--', linewidth=1.5)
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.show()

legend()、 grid()
legend:图例。可传参数包括handles,labels,loc等。handles是图线序列,labels是要显示的图例标签,loc是图例显示的位置,共有11种可选,传参时用String或Code均可。

grid:给图表添加网格。可传参数包括b, which, axis和其他可选参数。b是否显示网格线,当提供color,linestyle等可选参数时,会默认b为True。which应用网格线,可传’major’, ‘minor’, 'both’分别表示使用主刻度、次刻度、两者。axis应用轴,可传 ‘x’, ‘y’, 'both’分别表示使用x轴、y轴、两者。可选参数包括color、linestyle、linewidth等。下面添加一个简单的网格线:
MultipleLocator, FormatStrFormatter:修改主次刻度。主刻度和次刻度就类似于一把直尺上cm与mm的关系。MultipleLocator生成刻度标签,FormatStrFormatter生成刻度标签格式,然后分别用set_major_locator、set_major_formatter、set_minor_locator、set_minor_formatter进行主次刻度的设置。下面对x轴进行主次刻度的设置:
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
x = [1, 2, 3, 4]
y = [10, 20, 30, 40]fig = plt.figure(figsize=(8, 3), dpi=100, facecolor=(1,1,1,1),edgecolor=(1,0,0,1), frameon=True, linewidth=1)
# 3、绘图
ax1 = fig.add_subplot(121)
ax1.plot(x, y)
ax2 = fig.add_subplot(122)
ax2.plot(x, y)
# 4、自定义设置
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax2.set_xlabel('x')
ax2.set_ylabel('y')
# 设置边界
ax1.set_xlim([1, 4])
ax1.set_ylim([10, 40])
ax2.set_xlim([1, 4])
ax2.set_ylim([10, 40])
# 设置图例
ax1.legend(['leg'], loc=0)
ax2.legend(['legend'], loc=0)
# 添加网格线(使用主次刻度需要先设置,这里暂时忽略,直接用both)
ax1.grid(True, which='both', axis='both', color='y', linestyle='--', linewidth=1)
# 设置主刻度 次刻度
x_major_locator = MultipleLocator(1) #将x轴主刻度标签设置为1的倍数
ax2.xaxis.set_major_locator(x_major_locator)
x_major_formatter = FormatStrFormatter('%.0f') #设置x轴标签文本的格式
ax2.xaxis.set_major_formatter(x_major_formatter)
x_minor_locator = MultipleLocator(0.5) #将x轴次刻度标签设置为0.5的倍数ax.xaxis.set_minor_locator(xminorLocator)
ax2.xaxis.set_minor_locator(x_minor_locator)
# 添加网格线
ax2.grid(True, which='both', axis='both', color='y', linestyle='--', linewidth=1)
plt.show()

text()、 annotate()
text:在坐标上添加文本,参数有x,y,s,fontdict,withdash。x,y是放置文本的位置。s是要添加的文本。fontdict用于覆盖默认文本属性的字典,例如fontsize, fontproperties, color 等,如果fontdict为none,则默认值由rc参数(matplotlib.rcParams)决定。withdash创建一个TextWithDash实例用于代替Text实例。下面我们在(2, 20)这个位置添加一个文本。
x = [1, 2, 3, 4]
y = [10, 20, 30, 40]
fig = plt.figure(figsize=(3, 3), dpi=100, facecolor=(0,1,0,1),edgecolor=(1,0,0,1), frameon=True, linewidth=1)
# 3、绘图
ax1 = fig.add_subplot(111)
ax1.plot(x, y)
# 4、自定义设置
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax1.set_xlim([1, 4])
ax1.set_ylim([10, 40])
# 设置图例
ax1.legend(['legend'], loc=0)
ax1.grid(True, which='both', axis='both', color='y', linestyle='--', linewidth=1)
# 添加注释
plt.text(2, 20, 'text', fontsize=10, fontproperties = 'SimHei', color='red')
plt.show()

title() pyplot的文本显示
在图形中增加带箭头的注释
plt.annotate(s, xy=arrow_crd, xytext=text_crd, arrowprops=dict, *args, **kwargs)
参数:
s 为注释文本内容
xy 为被注释的坐标点
xytext 为注释文字的坐标位置
xycoords 参数如下:
figure points:图左下角的点
figure pixels:图左下角的像素
figure fraction:图的左下部分
axes points:坐标轴左下角的点
axes pixels:坐标轴左下角的像素
axes fraction:左下轴的分数
data:使用被注释对象的坐标系统(默认)
polar(theta,r):if not native ‘data’ coordinates t
color 设置字体颜色
weight 设置字体线型
{‘ultralight’, ‘light’, ‘normal’, ‘regular’, ‘book’, ‘medium’, ‘roman’, ‘semibold’, ‘demibold’, ‘demi’, ‘bold’, ‘heavy’, ‘extra bold’, ‘black’}
color 设置字体颜色
arrowprops #箭头参数,参数类型为字典dict
width:箭头的宽度(以点为单位)
headwidth:箭头底部以点为单位的宽度
headlength:箭头的长度(以点为单位)
shrink:总长度的一部分,从两端“收缩”
facecolor:箭头颜色
bbox给标题增加外框 ,常用参数如下:
boxstyle:方框外形
facecolor:(简写fc)背景颜色
edgecolor:(简写ec)边框线条颜色
edgewidth:边框线条大小
# 1. 把arrowprops参数改成通过dict传入参数(facecolor = “r”, headlength = 10, headwidth = 30, width = 20)。
# 2. 把bbox参数改成通过dict传入参数(boxstyle=‘round,pad=0.5’, fc=‘yellow’, ec=‘k’,lw=1 ,alpha=0.5)。
import matplotlib.pyplot as plt
import numpy as npx = np.arange(0, 6)
y = x * xfig = plt.figure(figsize=(8, 3), dpi=100, facecolor=(0,1,0,1),edgecolor=(1,0,0,1), frameon=True, linewidth=1)
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
ax1.plot(x, y, marker='o')
ax2.plot(x, y, marker='D')
for xy in zip(x, y):ax1.annotate("(%s,%s)" % xy, xy=xy, xytext=(-20, 10), textcoords='offset points', arrowprops = dict(facecolor = "r", headlength = 10, headwidth = 30, width = 20))
for xy in zip(x, y):ax2.annotate("(%s,%s)" % xy, xy=xy, xytext=(-20, 10), textcoords='offset points', bbox=dict(boxstyle='round,pad=0.5', fc='yellow', ec='k', lw=1, alpha=0.5))
plt.show()

默认属性设置
如果不想每次使用matplotlib时都在代码部分进行配置,可以修改matplotlib的文件参数。可以用matplot.get_config()命令来找到当前用户的配置文件目录。
配置文件包括以下配置项:
figure: 控制dpi、边界颜色、图形大小、和子区( subplot)设置
font: 字体集(font family)、字体大小和样式设置
grid: 设置网格颜色和线性
legend: 设置图例和其中的文本的显示
line: 设置线条(颜色、线型、宽度等)和标记
xticks和yticks: 为x,y轴的主刻度和次刻度设置颜色、大小、方向,以及标签大小。
axex: 设置坐标轴边界和表面的颜色、坐标刻度值大小和网格的显示
backend: 设置目标暑促TkAgg和GTKAgg
patch: 是填充2D空间的图形对象,如多边形和圆。控制线宽、颜色和抗锯齿设置等。
savefig: 可以对保存的图形进行单独设置。例如,设置渲染的文件的背景为白色。
verbose: 设置matplotlib在执行期间信息输出,如silent、helpful、debug和debug-annoying
5)颜色设置
调用matplotlib.pyplot.colors()可以得到matplotlib支持的所有颜色。
其中,k表示黑色、m表示洋红色、c表示青色、w表示白色。
背景色:matplotlib.pyplot.axes() 或者 matplotlib.pyplot.subplot()提供一个axisbg参数,可以指定坐标中的颜色。
子图
plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1)
理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始
plt.subplot2grid((3,3),(1,0),colspan=2)


pyplot的绘图区域
plt.subplot(nrows, ncols, plot_number)

在全局绘图区域中创建一个 分区体系,并定位到一个子 绘图区域
plt.subplot(3,2,4)
plt.subplot(324)

pyplot的基础图标函数

pyplot 的 plot 函数
plt.plot(x,y, format_string, **kwargs)
∙ x : X轴数据,列表或数组,可选
∙ y :Y轴数据,列表或数组
∙format_string: 控制曲线的格式字符串,可选
∙ **kwargs: 第二组或更多(x,y,format_string)
当绘制多条曲线时,各条曲线的x不能省略
注意:如果向plot()指令提供了一维的数组或者列表,则matplotlib将默认它是一系列的y值,并且自动为其生成x的值。默认的x向量从0开始并且具有和y同样的长度。

∙format_string: 控制曲线的格式字符串
由颜色字符、风格字符和标记字符组成




plt.plot(x,y, format_string, **kwargs)
∙ **kwargs: 第二组或更多(x,y,format_string)
color : 控制颜色, color=‘green’ linestyle: 线条风格, linestyle=‘dashed’ marker : 标记风格, marker=‘o’ markerfacecolor: 标记颜色, markerfacecolor=‘blue’ markersize: 标记尺寸, markersize=20
plt.plot()
只有一个输入列表或数组时,参数被当作Y轴,X轴以索引自动生成
import matplotlib.pyplot as pltplt.plot([3, 1, 4, 5, 2])
plt.ylabel("Grade")
plt.savefig('test', dpi=600) # png 文件
plt.show()

plt.plot(x,y)当有两个以上参数时,按照X轴和Y轴顺序绘制数据点
import matplotlib.pyplot as pltplt.plot([0, 2, 4, 6, 8] ,[3, 1, 4, 5, 2])
plt.ylabel("Grade")
plt.axis([-1, 10, 0, 6]) # 确定 x,y 轴坐标
plt.savefig('test1', dpi=600) # png 文件
plt.show()

pyplot饼图的绘制
plt.pie()


pyplot直方图的绘制
plt.hist()


pyplot极坐标图的绘制


pyplot 散点图的绘制

