Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
Matplotlib 可以用来绘制各种静态,动态,交互式的图表。
Matplotlib 是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。
Matplotlib 可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。
安装 matplotlib 库:
python3 -m pip install -U matplotlib
Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。
Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。
Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,在图像中产生新的绘图区域等等。
plot() 用于画图它可以绘制点和线,语法格式如下:
# 画单条线 plot([x], y, [fmt], *, data=None, **kwargs) # 画多条线 plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
参数说明: x, y:点或线的节点,x 为 x 轴数据,y 为 y 轴数据,数据可以列表或数组。 fmt:可选,定义基本格式(如颜色、标记和线条样式)。 **kwargs:可选,用在二维平面图上,设置指定属性,如标签,线的宽度等。
绘图过程如果我们想要给坐标自定义一些不一样的标记,就可以使用 plot() 方法的 marker 参数来定义。
1、marker 可以定义的符号如下
| 标记 | 符号 | 描述 |
|---|---|---|
| "." | ![]() |
点 |
| "," | ![]() |
像素点 |
| "o" | ![]() |
实心圆 |
| "v" | ![]() |
下三角 |
| "^" | ![]() |
上三角 |
| "<" | ![]() |
左三角 |
| ">" | ![]() |
右三角 |
| "1" | ![]() |
下三叉 |
| "2" | ![]() |
上三叉 |
| "3" | ![]() |
左三叉 |
| "4" | ![]() |
右三叉 |
| "8" | ![]() |
八角形 |
| "s" | ![]() |
正方形 |
| "p" | ![]() |
五边形 |
| "P" | ![]() |
加号(填充) |
| "*" | ![]() |
星号 |
| "h" | ![]() |
六边形 1 |
| "H" | ![]() |
六边形 2 |
| "+" | ![]() |
加号 |
| "x" | ![]() |
乘号 x |
| "X" | ![]() |
乘号 x (填充) |
| "D" | ![]() |
菱形 |
| "d" | ![]() |
瘦菱形 |
| "|" | ![]() |
竖线 |
| "_" | ![]() |
横线 |
| 0 (TICKLEFT) | ![]() |
左横线 |
| 1 (TICKRIGHT) | ![]() |
右横线 |
| 2 (TICKUP) | ![]() |
上竖线 |
| 3 (TICKDOWN) | ![]() |
下竖线 |
| 4 (CARETLEFT) | ![]() |
左箭头 |
| 5 (CARETRIGHT) | ![]() |
右箭头 |
| 6 (CARETUP) | ![]() |
上箭头 |
| 7 (CARETDOWN) | ![]() |
下箭头 |
| 8 (CARETLEFTBASE) | ![]() |
左箭头 (中间点为基准) |
| 9 (CARETRIGHTBASE) | ![]() |
右箭头 (中间点为基准) |
| 10 (CARETUPBASE) | ![]() |
上箭头 (中间点为基准) |
| 11 (CARETDOWNBASE) | ![]() |
下箭头 (中间点为基准) |
| "None", " " or "" | 没有任何标记 | |
| '$...$' | ![]() |
渲染指定的字符。例如 "$f$" 以字母 f 为标记。 |
2、线类型:线的类型可以使用 linestyle 参数来定义,简写为 ls。
'‐' 实线,'‐‐' 破折线,'‐.' 点划线,':' 虚线。
线的颜色可以使用 color 参数来定义,
线的宽度可以使用 linewidth 参数来定义,简写为 lw,值可以是浮点数,如:1、2.0、5.67 等。
3、fmt 参数:fmt 参数定义了基本格式,如标记、线条样式和颜色。
4、使用 xlabel() 和 ylabel() 方法来设置 x 轴和 y 轴的标签。
5、使用 title() 方法来设置标题。
6、使用 pyplot 中的 grid() 方法来设置图表中的网格线。
grid() 方法语法格式如下:
matplotlib.pyplot.grid(b=None, which='major', axis='both', )
三、折线图
使用 pyplot 中的 plot()方法来绘制散点图。
import numpy as np
import matplotlib.pyplot as plt
y = np.array([1,3,4,6,7,9,11,5,8])
y2 = np.array([16,18,15,8,5,11,12])
plt.plot(y,'*:b',linestyle= '-.',linewidth='1')
plt.xlabel('Xname')#设置x轴名字
plt.ylabel('Yname')
四、散点图
使用 pyplot 中的 scatter() 方法来绘制散点图。
scatter() 方法语法格式如下:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None,
vmin=None, vmax=None, alpha=None, linewidths=None,
*, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
参数说明:
x,y:长度相同的数组,也就是我们即将绘制散点图的数据点,输入数据。
s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小。
c:点的颜色,默认蓝色 'b',也可以是个 RGB 或 RGBA 二维行数组。
marker:点的样式,默认小圆圈 'o'。
cmap:Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c 是一个浮点数数组的时才使用。如果没有申明就是 image.cmap。
norm:Normalize,默认 None,数据亮度在 0-1 之间,只有 c 是一个浮点数的数组的时才使用。
vmin,vmax::亮度设置,在 norm 参数存在时会忽略。
alpha::透明度设置,0-1 之间,默认 None,即不透明。
linewidths::标记点的长度。
edgecolors::颜色或颜色序列,默认为 'face',可选值有 'face', 'none', None。
plotnonfinite::布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。
**kwargs::其他参数。
例如:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
sizes = np.array([20,50,100,200,500,1000,60,90])
plt.subplot(2, 2, 1)
colors = np.array(["red","green","black","orange","purple","beige","cyan","magenta"])
plt.scatter(x, y, s=sizes,c=colors,marker='*',alpha=0.5)
五、柱形图
使用 pyplot 中的 bar() 方法来绘制柱形图。
bar() 方法语法格式如下:
matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
参数说明:
x:浮点型数组,柱形图的 x 轴数据。
height:浮点型数组,柱形图的高度。
width:浮点型数组,柱形图的宽度。
bottom:浮点型数组,底座的 y 坐标,默认 0。
align:柱形图与 x 坐标的对齐方式,'center' 以 x 位置为中心,这是默认值。 'edge':将柱形图的左边缘与 x 位置对齐。
要对齐右边缘的条形,可以传递负数的宽度值及 align='edge'。
**kwargs::其他参数。
例如:
import matplotlib.pyplot as plt
import numpy as np
x = np.array(['张三','李四','王五','赵柳','王麻子','张无忌','赵敏','金毛狮王'])
heights= np.array( [1,2,4,5,6,4,3,1])
colors = np.array(['red','blue','green'])
plt.bar(x=x,height=heights,width=0.3,color=colors,align='edge')
plt.show()
六、扇形图
使用 pyplot 中的 pie() 方法来绘制饼图。
pie() 方法语法格式如下:
matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None,
pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True,
wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, *, normalize=None,
data=None)[source]
参数说明:
x:浮点型数组,表示每个扇形的面积。
explode:数组,表示各个扇形之间的间隔,默认值为0。
labels:列表,各个扇形的标签,默认值为 None。
colors:数组,表示各个扇形的颜色,默认值为 None。
autopct:设置饼图内各个扇形百分比显示格式,%d%% 整数百分比,%0.1f 一位小数, %0.1f%% 一位小数百分比, %0.2f%% 两位小数百分比。
labeldistance:标签标记的绘制位置,相对于半径的比例,默认值为 1.1,如 <1则绘制在饼图内侧。
pctdistance::类似于 labeldistance,指定 autopct 的位置刻度,默认值为 0.6。
shadow::布尔值 True 或 False,设置饼图的阴影,默认为 False,不设置阴影。
radius::设置饼图的半径,默认为 1。
startangle::起始绘制饼图的角度,默认为从 x 轴正方向逆时针画起,如设定 =90 则从 y 轴正方向画起。
counterclock:布尔值,设置指针方向,默认为 True,即逆时针,False 为顺时针。
wedgeprops :字典类型,默认值 None。参数字典传递给 wedge 对象用来画一个饼图。
例如:wedgeprops={'linewidth':5} 设置 wedge 线宽为5。
textprops :字典类型,默认值为:None。传递给 text 对象的字典参数,用于设置标签(labels)和比例文字的格式。
center :浮点类型的列表,默认值:(0,0)。用于设置图标中心位置。
frame :布尔类型,默认值:False。如果是 True,绘制带有表的轴框架。
rotatelabels :布尔类型,默认为 False。如果为 True,旋转每个 label 到指定的角度。
例如:
import matplotlib.pyplot as plt
import numpy as np
y = np.array([20,15, 25, 25, 15])
plt.pie(y,
labels=['guitar','saxophone','piano','violin','others'], # 设置饼图标签
colors=["#d5695d",'#852625', "#5d8ca8", "#65a479", "#a564c9"], # 设置饼图颜色
explode=(0, 0, 0.2, 0,0), # 第二部分突出显示,值越大,距离中心越远
autopct='%.2f%%', # 格式化输出百分比
)
plt.title("musical instruments") # 设置标题
plt.show()
七、绘制多图
subplot(nrows, ncols, index, **kwargs)
subplot(pos, **kwargs)
subplot(**kwargs)
subplot(ax)
以上函数将整个绘图区域分成 nrows 行和 ncols 列,编号可以通过参数 index 来设置。
设置 numRows = 1,numCols = 2,就是将图表绘制成 1x2 的图片区域, 对应的坐标为:
(1, 1), (1, 2)
plotNum = 1, 表示的坐标为(1, 1), 即第一行第一列的子图。
plotNum = 2, 表示的坐标为(1, 2), 即第一行第二列的子图。
例如:
import numpy as np
import matplotlib.pyplot as plt
# plot1
y = np.array([1, 3, 4, 6, 7, 9, 11, 5, 8])
plt.subplot(3, 3, 5)
plt.plot(y, '*:b', linestyle='-.')
plt.title('plot1')
# plot2
y2 = np.array([16, 18, 15, 8, 5, 11, 12])
plt.subplot(3, 3, 9)
plt.plot(y2, 'r:s', linestyle='-.')
plt.title('plot2')
plt.show()
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的
本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p