您现在的位置是:主页 > news > 专业做皮草的网站/学做网站需要学什么

专业做皮草的网站/学做网站需要学什么

admin2025/5/25 1:03:06news

简介专业做皮草的网站,学做网站需要学什么,Wordpress能更新到最新版本,怎样做好网站Matplotlib介绍Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式Matplotlib 包含两个模板(1) 绘图API: pyplot,绘制各类可视化图形的命令子…

专业做皮草的网站,学做网站需要学什么,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()

4393515cbbe155bb93db67bfbf47854a.png

基本绘图步骤分析:

(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()

f0e9abf9123fa2512f47ac1d92a41a31.png

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     #用于正常显示负号

656018965ea64646010da84e931c16cb.png

rcParams的属性

e15082565ecdffa2349863cfea8e7519.png

最后再简单介绍几个比较常用的属性方法,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轴设置是否显示。

中文字体的种类

7ea60c8b45938b29225461b198d36399.png

实例:

d924f050f9e711bb22d16b89fd9f0542.png

第二种方法:fontproperties

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

251370e0e605003cead973f2515e6a89.png

坐标属性

在作拥有坐标轴的图表时,我们往往需要对坐标轴进行设置,例如坐标轴的名称、坐标轴的范围、坐标轴的刻度等。

(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()

9ef5f6e680423d3d76f02498da45efed.png

线条属性

在第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()

49086b17ce2b9e99eec75a65c6a8ad64.png

legend()、 grid()

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

4e2390c10e792fc90911f55d1f651bb7.png

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()

74aa6e1812d6bddeaa3452ed30863000.png

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()

0b52cc7afbfa3929dfdfe9f6f20662f7.png

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()

19dd38841d11e722378a1d24b6dcf918.png

默认属性设置

如果不想每次使用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)

85b2ce1ba9d8bc142eaf4ac2fb761d79.png

42919b4a7772637de9758236f30c54ab.png

pyplot的绘图区域

plt.subplot(nrows, ncols, plot_number)

79afe3ceea032ef653f0c082e36ca973.png

在全局绘图区域中创建一个 分区体系,并定位到一个子 绘图区域

plt.subplot(3,2,4) 
plt.subplot(324)

ce944efa224eca1eacb828f1c1415a4e.png

pyplot的基础图标函数

dc5f7596787b2cdc638f4858134dcee3.png

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同样的长度。

12812f06094f75e54cbbfc041df5dfe5.png

∙format_string: 控制曲线的格式字符串

由颜色字符、风格字符和标记字符组成

d157d6248a30260ba7c41858aada4870.png

3542875f5db951ba9dfa73fd227e22f5.png

417541490eef10f101934038f8f67d2c.png

6a8acbc2cb31b3718c69fe40a2e27e7a.png

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()

953b8d08518c288102f95e0683e9e955.png

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()

c8b1f048971a5c73db3f35b3b6fbd551.png

pyplot饼图的绘制

plt.pie()

fa6a02b22f7c068b996914a81c7d1530.png

18c8e9fda01f3ccde961c48956517902.png

pyplot直方图的绘制

plt.hist()

b13dbb4f2ac54fc663dcb02727d15427.png

979c70b3198bd26ad785e50df0fe3684.png

pyplot极坐标图的绘制

343f6dfb648a5b82c104342048385949.png

a4fb53e517c082078341c9ce5912a451.png

pyplot 散点图的绘制

f5a2b8913e61b215fd8051bb986cece6.png

baf025d4823c540b51447bb3b7b3cacb.png