python中利用matplotlib绘图可视化知识归纳:
(1)matplotlib图标正常显示中文
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['simhei'] #用于正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用于正常显示负号
(2)统计作图函数:
- plt.plot()绘制线性二维图,折线图
注意:如果向plot()指令提供了一维的数组或者列表,则matplotlib将默认它是一系列的y值,并且自动为其生成x的值。默认的x向量从0开始并且具有和y同样的长度。
- plt.bar() 绘制条形图
- plt.scatter() 绘制散点图
- plt.hist() 绘制二维条形直方图,显示数据的分配情况
- plt.pie() 绘制饼图
- plt.boxplot() 绘制箱形图
(3)为项目设置matplotlib参数
在代码执行过程中,有两种方式可以更改参数:
- 使用参数字典(rcParams)
- 调用matplotlib.rc()命令,通过传入关键字元组,修改参数
如果不想每次使用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
(4)线条相关属性标记设置
线条形状设置: linestyle
marker:对坐标点标记(线条标记)
(5)颜色设置
调用matplotlib.pyplot.colors()可以得到matplotlib支持的所有颜色。
其中,k表示黑色、m表示洋红色、c表示青色、w表示白色。
背景色:matplotlib.pyplot.axes() 或者 matplotlib.pyplot.subplot()提供一个axisbg参数,可以指定坐标中的颜色。
(6)修改坐标范围
默认情况下,坐标轴的最大值和最小值与输入数据的最小、最大值一致。
plt.axis(xmin,xmax,ymin,ymax) 给定了坐标范围
xlim(xmin,xmax)和ylim(ymin,ymax)来调整x,y的坐标范围
(7)设置轴标记plt.xticks()/plt.yticks():人为设置坐标轴的刻度显示的值
实例:
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(8,6), dpi=80) # 创建一个新的 1 * 1 的子图,接下来的图样绘制在其中的第 1 块(也是唯一的一块)
plt.subplot(1,1,1)
X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)
plt.plot(X, C, color="blue", linewidth=1.0, linestyle="-") # 绘制余弦曲线,使用蓝色的、连续的、宽度为 1 (像素)的线条
plt.plot(X, S, color="r", lw=4.0, linestyle="-") # 绘制正弦曲线,使用绿色的、连续的、宽度为 1 (像素)的线条
plt.axis([-4,4,-1.2,1.2]) #给定坐标轴的范围
# 设置轴记号
plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])
plt.yticks([-1, 0, +1],
[r'$-1$', r'$0$', r'$+1$']) #注意:这里设置记号时,同时设置了记号的标签。使用了LaTeX
plt.show()
(8)叠加图:用一条指令画出多条不同格式的线
示例:
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0., 5., 0.2)
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()
(9)创建子图plt.subplot()
首先通过plt.figure()创建一张新的图,之后用plt.subplot()创建子图。
其中subplot()指令包含行数、列数和图像编号,其中图像编号的范围是从1到行数 * 列数。
import matplotlib.pyplot as plt
plt.figure(1) # 第一张图
plt.subplot(211) # 第一张图中的第一张子图
plt.plot([1,2,3])
plt.subplot(212) # 第一张图中的第二张子图
plt.plot([4,5,6])
plt.figure(2) # 第二张图
plt.plot([4,5,6]) # 默认创建子图subplot(111)
plt.figure(1) # 切换到figure 1 ; 子图subplot(212)仍旧是当前图
plt.subplot(211) # 令子图subplot(211)成为figure1的当前图
plt.title('Easy as 1,2,3') # 添加subplot 211 的标题
(10)plt.text()添加文字说明
Text语法说明:
text(x,y,string,fontsize=15,verticalalignment="top",horizontalalignment="right")
其中:
x,y:表示坐标值上的值
string:表示说明文字
fontsize:表示字体大小
verticalalignment:垂直对齐方式 ,参数:[ ‘center’ | ‘top’ | ‘bottom’ | ‘baseline’ ]
horizontalalignment:水平对齐方式 ,参数:[ ‘center’ | ‘right’ | ‘left’ ]
arrowprops #箭头参数,参数类型为字典dict 参数:width点箭头的宽度,headwidth在点的箭头底座的宽度,headlength点箭头的长度,shrink 总长度为分数“缩水”从两端,facecolor箭头颜色
bbox给标题增加外框 其中常用参数: boxstyle方框外形,facecolor(简写fc)背景颜色,edgecolor(简写ec)边框线条颜色,edgewidth边框线条大小
示例:
import matplotlib.pyplot as plt
plt.text(0.6, 0.5, "test", size=50, rotation=30.,ha="center", va="center",bbox=dict(boxstyle="round",ec=(1., 0.5, 0.5),fc=(1., 0.8, 0.8),))
plt.text(0.5, 0.4, "test", size=50, rotation=-30.,ha="right", va="top",bbox=dict(boxstyle="square",ec=(1., 0.5, 0.5),fc=(1., 0.8, 0.8),))
plt.draw()
plt.show()
(12)文本注释annotate()
格式:annotate(s=’str’,xy=(x,y),xytext=(i1,i2),;...)
annotate()参数设置箭头指示的位置,xytext参数设置注释文字的位置
---arrowprops参数以字典的形式设置箭头的样式
---width参数设置箭头长方形部分的宽度,headlength参数设置箭头尖端的长度
---headwidth参数设置箭头尖端底部的宽度,shrink参数设置箭头顶点、尾部与指示点、注释文字的距离(比例值)'''
示例如下:
import numpy as np
import matplotlib.pyplot as plt
plt.figure(figsize=(6, 6))
x = np.random.randint(0, 10, size=10)
x[5] = 30 # 对x中索引值为5的重新赋值
plt.plot(x)
plt.ylim([-2, 35])
# plt.annotate(s="this point is important", xy=(5, 30), xytext=(6, 31),arrowprops={"width": 2, "headlength": 5, "headwidth": #5, "shrink": 0.1})
plt.annotate(s="this point is important", xy=(5, 30), xytext=(6, 31),arrowprops={"arrowstyle":"->"}) # 如果arrowprops中有arrowstyle,就不应该有其他的属性,xy代表的是箭头的位置,xytext代表的是箭头文本的位置。
plt.show()
(13)plt.title()设置图像标题
title常用参数:fontsize设置字体大小、fontweight设置字体粗细、fontstyle设置字体类型、verticalalignment设置水平对齐方式 ,可选数: : 'center' , 'top' , 'bottom' ,'baseline'
horizontalalignment设置垂直对齐方式,可选参数:left,right,center
rotation(旋转角度)可选参数为:vertical,horizontal 也可以为数字
alpha透明度,参数值0至1之间
backgroundcolor标题背景颜色
(14)Matplotlib中的fill_between()函数总结
l 示例:曲线覆盖
import numpy as np
import matplotlib.pyplot as plt
x = np.array([i for i in range(30)])
y = np.random.rand(30)
plt.plot(x, y)
plt.fill_between(x, 0, y, facecolor='green', alpha=0.3)
plt.show()
注意:fill_between()函数中的几个参数:
x:第一个参数表示覆盖的区域,直接复制为x,表示整个x都覆盖
0:表示覆盖的下限
y: 表示覆盖的上限是y这个曲线
facecolor:覆盖区域的颜色
alpha:覆盖区域的透明度[0,1],其值越大,表示越不透明
部分区域覆盖:plt.fill_between(x[2:15], 0.2, 0.6, facecolor='green', alpha=0.3)
两曲线之间的覆盖:
y1 = np.random.rand(30)
y2 = y1 + 0.3
plt.plot(x, y1,'b',x,y2,'r')
plt.fill_between(x, y1, y2, facecolor='green', alpha=0.3)
示例:想要实现循环填充想要填充的部分,设置填充的上下限的功能
import numpy as np
import matplotlib.pyplot as plt
x = np.array([i for i in range(30)])
print(x)
y = np.random.rand(30)
# 设置想要高亮数据的位置
position = [[1, 6],
[10, 12],
[20, 23],
[26, 28]]
print(position)
# 画图
plt.plot(x, y, 'r')
for i in position:
print(i) #输出结果i为:[1, 6], [10, 12], [20, 23], [26, 28]
print(x[i[0]:i[1]]) #结果为:[1 2 3 4 5] [10 11] [20 21 22] [26 27]
plt.fill_between(x[ i[0] : i[1] ], 0, 1, facecolor='green', alpha=0.3)
plt.show()
python中利用matplotlib绘图可视化知识归纳的更多相关文章
-
【转】 Python 中,matplotlib绘图无法显示中文的问题
在python中,默认情况下是无法显示中文的,如下代码: import matplotlib.pyplot as plt # 定义文本框和箭头格式 decisionNode = dict(boxsty ...
-
Python 中,matplotlib绘图无法显示中文的问题
在python中,默认情况下是无法显示中文的,如下代码: import matplotlib.pyplot as plt # 定义文本框和箭头格式 decisionNode = dict(boxsty ...
-
Python 中使用 matplotlib 绘图中文字符显示异常的问题
最近在使用 Python matplotlib 绘制图表时发现中文字符不能正确显示:比如在绘制折线图时,中文全部显示成▢▢▢的格式,虽然将数据改成英文就没什么问题,但是所有数据都这么做时不可行的,于是 ...
-
Python中利用函数装饰器实现备忘功能
Python中利用函数装饰器实现备忘功能 这篇文章主要介绍了Python中利用函数装饰器实现备忘功能,同时还降到了利用装饰器来检查函数的递归.确保参数传递的正确,需要的朋友可以参考下 " ...
-
使用python中的matplotlib 画图,show后关闭窗口,继续运行命令
使用python中的matplotlib 画图,show后关闭窗口,继续运行命令 在用python中的matplotlib 画图时,show()函数总是要放在最后,且它阻止命令继续往下运行,直到1.0 ...
-
python 1: 解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题
问题: 我在ubuntu14.04下用python中的matplotlib模块内的pyplot输出图片不能显示中文,怎么解决呢? 解决: 1.指定默认编码为UTF-8: 在python代码开头加入如下 ...
-
Python中利用原始套接字进行网络编程的示例
Python中利用原始套接字进行网络编程的示例 在实验中需要自己构造单独的HTTP数据报文,而使用SOCK_STREAM进行发送数据包,需要进行完整的TCP交互. 因此想使用原始套接字进行编程,直接构 ...
-
python中利用队列asyncio.Queue进行通讯详解
python中利用队列asyncio.Queue进行通讯详解 本文主要给大家介绍了关于python用队列asyncio.Queue通讯的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细 ...
-
【Python开发】使用python中的matplotlib进行绘图分析数据
matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备, ...
随机推荐
-
spring-boot 文件上传获取不到File原因,MultipartHttpServletRequest.getFiles为空
以下是spring-boot的处理方式,其他可参考处理具体问题:1.CommonsMultipartResolver解析不到request中的文件流2.Controller方法参数MultipartH ...
-
【Telerik】查询控件<;telerik:RadMaskedTextBox>;的使用
在SilverLight项目中,实现模糊查询,并将值绑定到列表中,使用了Telerik中的<telerik:RadMaskedTextBox>控件. 要先添加命名空间的引用: xmlns: ...
-
工作中常用的Linux命令:mkdir命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6076075.html (转载请注明出处) 在Linux系统中,mkdir命令用来创建一个目录或一个级联目录. ...
-
Redis源码分析系列
0.前言 Redis目前热门NoSQL内存数据库,代码量不是很大,本系列是本人阅读Redis源码时记录的笔记,由于时间仓促和水平有限,文中难免会有错误之处,欢迎读者指出,共同学习进步,本文使用的Red ...
-
java基础(十四)集合(一)
这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是 ...
-
demo_02 less
html 中的代码<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> &l ...
-
codevs1506传话(kosaraju算法)
- - - - - - - - 一个()打成[] 看了一晚上..... /* 求强连通分量 kosaraju算法 边表存图 正反构造两个图 跑两边 分别记下入栈顺序 和每个强连通分量的具体信息 */ ...
-
PAT 团体程序设计天梯赛-练习集 L1-020. 帅到没朋友
原题 https://www.patest.cn/contests/gplt/L1-020 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友.本题就要求你找出那些帅到没有朋友的人. ...
-
零基础如何一步一步开始搭建高性能直播平台?现以GitChat&#183;架构来进行说明
前言 现在直播已经成为移动互联网时代一个新的重要流量入口,从YY.斗鱼到花椒直播,直播已经成为人们分享交流的新方式,应用场景众多,主要分为: 金融类直播:金融直播可应用于实时解盘,在线专家讲座,专家在 ...
-
file_put_contents写入文字换行
file_put_contents写入文字换行 注意要使用双引号 "\r\n"