matplotlib的简单使用(数据可视化)
matplotlib简单绘制不同类型的表格_wolfwalker的博客-CSDN博客
此文为matplotlib简单绘制不同类型表格的拓展
目录
一、入门(简单使用matplotlib创建我们的图像)
二、图像与子图
创建子图的快捷方法
多子图属性
共享坐标轴
三、图标元素
颜色,标记与线型
常用颜色
常用线形
常用标记
简单的实例应用
折线图样式
标题、标签、刻度和图像
简单应用
标注
几何图形的绘制
绘制不同类型的表格请参考这篇博客
一、入门(简单使用matplotlib创建我们的图像)
使用我们的matplotlib包和numpy包执行下面的代码,我们能绘制出一张点阵和折线重叠的图。
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(10)
y=x**2
#创建点图
plt.scatter(x,y)
#创建折线图
plt.plot(x,y)
plt.show()
二、图像与子图
观察我们下面的代码,我们将fig的尺寸通过plt.figure(figsize=(4,5))进行了设置。其4,5的单位为英寸。
x=np.arange(10)
y=x**2
fig=plt.figure(figsize=(4,5))
plt.plot(x,y)
plt.show()
子图,可以将我们的画布划分为多个部分:fig.add_subplot(n,m,k)
n代表的行数,m表示列数,k表示是第几个图表
#创建一块画布
fig=plt.figure()
#在我们两行两列的画布的第一张画布上的第一个位置绘制我们的第一个图像
sub_fig1=fig.add_subplot(2,2,1)
#在我们两行两列的画布的第一张画布上的第三个位置绘制我们的第一个图像
sub_fig2=fig.add_subplot(2,2,3)
#在我们两行两列的画布的第一张画布上的第四个位置绘制我们的第一个图像
sub_fig3=fig.add_subplot(2,2,4)
#这里我们没有指定画布,经过我们的测试,我们发现没有指定画布的图标会出现在最后一张图标上,'k--'表示将我们的图线设计为虚线
plt.plot(np.random.randn(50).cumsum(),'k--')
y=np.random.randn(100)
#对我们的第一张图标进行绘制,bins表示将我们柱状图划分成几个区间,color='k'表示将我们的图标的颜色设置为黑色,alpha表示将透明度设置为0.3
sub_fig1.hist(y,bins=20,color='k',alpha=0.3)
#对我们的第二张图进行绘制,我们横数据为0到29之间的所有整数,我们的列数据分别为0到29之间的所有数据再加上三倍的一个标准的正态分布的样本的数据
sub_fig2.scatter(np.arange(30),np.arange(30)+3*np.random.randn(30))
#将我们的全部图标打印出来。
plt.show()
创建子图的快捷方法
这里我们使用fig,axes=plt.subplots(2,3)来在我们的画布上创建两行三列的图标。然后我们将我们的axes指定为画布中的(0,1)位置的图标。如果我们想在其他位置的画布上画画,我们可以再指定axes[,]来让我们的其他位置的图标上画图。
fig,axes=plt.subplots(2,3)
axes[0,1].hist(np.random.randn(100),bins=20,color='k',alpha=0.3)
plt.show()
多子图属性
共享坐标轴
这里我们按照我们上面的写法创建一个两行两列的图标,并将我们图标的共享x轴属性和共享y轴属性改为true,这样我们就可以共享我们的坐标轴了。然后再通过我们上面的方法,通过axes[,]的方法将我们具体位置的图表绘制。
plt.subplot_adjust(wspace=0,hspace=0)可以调节我们四张图之间的间距,此处我们也可以将wsapce和hspace设置为零,来让我们四张图标紧贴在一起。
fig, axes = plt.subplots(2, 2, sharex=True, sharey=True)
axes[0,1].hist(np.random.randn(100),bins=20,color='k',alpha=0.3)
np.random.seed(80)
axes[1,1].hist(np.random.randn(100),bins=20,color='k',alpha=0.3)
plt.subplots_adjust(wspace=0, hspace=0)
plt.show()
三、图标元素
颜色,标记与线型
plot参数:x和y轴的数组和字符串参数,如:绿色虚线'g--',或者linestyle='--',color='g'
常用颜色
b | blue蓝 |
g | green绿 |
r | red红 |
c | cyan青 |
m | magenta品红 |
y | yellow黄 |
k | black黑 |
w | white白 |
常用线形
- | solid实线 |
: | dotted点线 |
-. | dashdot点虚线 |
-- | dashed虚线 |
(none) | no line |
常用标记
. | point |
o | circle |
x | x-mark |
+ | plus |
* | star(五角星) |
s | square(□) |
d | diamond(◇) |
v | triangle(down)▽ |
^ | triangle(up)△ |
< | triangle(left) |
> | triangle(right) |
p | pentagram(五边形) |
h | hexagram(六边形) |
简单的实例应用
这里我们按照上面我们已经介绍过的方法,创建了两张并列的图标,然后我们将我们的第一张图标绘制了一个折线图,并且将我们的点分布为从0-19,然后将我们的线条格式设置为红色(r),每个点用加号来表示(+),整条线用虚线(--)。当然我们也可以使用我们第二章图的写法,将我们的线条的设置的每一个参数单独写出来,单独进行设置。
fig,axes=plt.subplots(1,2)
axes[0].plot(np.arange(20),'r+--')
axes[1].plot(np.arange(20,0,-1),linestyle=':',color='g',marker='*')
plt.show()
折线图样式
这里我们设置了几种不同的折线图样式并将我们的不同的折线图绘制在了一起。其中plt.legend(loc='best')是将我们每条线的具体对应的标签标注出来,并将标注放在最合适的位置。从下面的测试代码中我们可以区分出我们的drawstyle分别为steps,steps-post,step-pre,steps-mid不同的区别。
fig=plt.figure()
data=np.random.randn(20).cumsum()
plt.plot(data,'mo--',label='Default')
plt.plot(data,'b*--',drawstyle='steps',label='steps')
plt.plot(data,'r+--',drawstyle='steps-post',label='steps-post')
plt.plot(data,'go--',drawstyle='steps-pre',label='steps-pre')
plt.plot(data,'kv--',drawstyle='steps-mid',label='steps-mid')
plt.legend(loc='best')
plt.show()
标题、标签、刻度和图像
函数名称 | 函数作用 |
plt.title | 添加标题,可以指定标题的名称,位置,颜色,字体大小等参数 |
plt.xlabel | 添加x轴名称,可以指定位置,颜色,字体大小等参数 |
plt.ylabel | 添加y轴名称,可以指定位置,颜色,字体大小等参数 |
plt.xlim | 指定x轴范围,只能确定一个数值区间,而无法使用字符串标识 |
plt.ylim | 指定y轴范围,只能确定一个数值区间,而无法使用字符串标识 |
plt.xticks | 指定x轴刻度的数目与取值,可以使用字符串 |
plt.yticks | 指定y轴刻度的数目与取值,可以使用字符串 |
plt.legend | 指定当前图形的图例,可以指定图例的大小、位置、标签等 |
简单应用
#创建画布
fig=plt.figure()
#当前测试的环境为max电脑,可以使用下面这两行代码来使我们的图标的中文正常显示
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False
#如果为Windows电脑可以尝试加下面两行代码来解决中文显示异常的问题
# plt.rcParams["font.family"] = ["sans-serif"]
# plt.rcParams["font.sans-serif"] = ['SimHei']#在我们的整个画布划分为一行一列,在画布的第一张图标的位置绘制,也就是整张图标都用来绘制一张图
ax=fig.add_subplot(1,1,1)
#将我们的横坐标的刻度分别设置为0,250,500,750,1000
ax.set_xticks([0,250,500,750,1000])
#将我们横坐标的刻度的对应位置的数据分别替换为如下的单词,并且设置字符的旋转角度为30,并且字体的大小为small
ax.set_xticklabels(['one','two','three','four','five'],rotation=30,fontsize='small')
#将我们的图标的y轴范围设置为-50到50
ax.set_ylim(-50,50)
#将我们图标的名字命名为'统计图1'
ax.set_title('统计图1')
#将我们图表的x轴标签设置为Stages
ax.set_xlabel('Stages')
#将我们图表的y轴标签设置为Number
ax.set_ylabel('Number')#分别绘制我们图表中的不同的线条
#使用一千个正态分布的样本,并将我们的数据逐个累加,并且将我们的线条的标签命名为随机数
ax.plot(np.random.randn(1000).cumsum(),label='随机数')
#使用arange函数能让我们生成1到1000的数字,然后分别带入我们的取对数log函数中生成我们的对数数据,并且将我们的线条命名为对数
ax.plot(np.log(np.arange(1,1001))*5,label='对数')
#使用arange函数生成0到999的数字,然后将其绘制成折线图,并将线条的标签设置为线性
ax.plot(np.arange(0,1000)/25,label='线性')
#添加标注,并将其放在最合适的位置
ax.legend(loc='best')
plt.show()
标注
ax.test(x,y,str)/ax.annotate(str,xy,xytest,arrowprops)
#创建一张画布
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ticks=ax.set_xticks([0,250,500,750,1000])
labels=ax.set_xticklabels(['one','two','three','four','five'],rotation=30,fontsize='small')#将画布坐标的100,10的位置写上hello
ax.text(100,10,'hello')#将我们的文字top写在520,15的所表上,再在我们图标的520,40的位置上画一个箭头
ax.annotate('top',xy=(520,15),xytext=(520,40),arrowprops=dict())ax.set_title('My plot')
ax.set_xlabel('Stages')
ax.set_ylabel('Number')
ax.set_ylim([-50,50])
np.random.seed(100)
ax.plot(np.random.randn(1000).cumsum())
plt.show()
几何图形的绘制
#创建我们的画布
fig=plt.figure()
ax=fig.add_subplot(1,1,1)#创建一个矩形,并且让我们的矩形的左下角的点在坐标0.2,0.75的位置,然后设置我们的矩形的长为0.4,设置我们矩形的高为0.15
rect=plt.Rectangle((0.2,0.75),0.4,0.15,color='r',alpha=0.3)#创建一个椭圆,其圆心的位置在0.7,0.2的位置,然后设置椭圆长半轴的长度为0.2
circ=plt.Circle((0.7,0.2),0.2,color='g',alpha=0.3)#创建一个三角形,然后分别将三角形的三个角的坐标位置传入
pgon=plt.Polygon([[0.15,0.15],[0.35,0.4],[0.2,0.6]],color='b',alpha=0.5)#分别将我们的三个形状绘制到我们的画布当中
ax.add_patch(rect)
ax.add_patch(circ)
ax.add_patch(pgon)
plt.show()
绘制不同类型的表格请参考这篇博客
matplotlib简单绘制不同类型的表格_wolfwalker的博客-CSDN博客_matplotlib 表格
matplotlib的简单使用(数据可视化)相关推荐
- c#split方法拆分为数据_Dexplot:基于pandas,比matplotlib更简单的数据可视化和数据分析工具...
Dexplot:建议准备学matplotlib和seaborn的数据可视化新手或者数据可视化爱好者食用 适用于长数据 比如网站用户留言的统计 特色是不用matplotlib 而用pandas导入数据( ...
- Python: 除matplotlib外还有哪些数据可视化库?
Python: 除matplotlib外还有哪些数据可视化库? matplotlib算是python比较底层的可视化库,可定制性强.图表资源丰富.简单易用.达到出版质量级别. 其它的可视化库诸如: s ...
- python数据可视化代码_Python实现简单的数据可视化
现在python这门解释型语言被越来越多的人们喜欢,强大的库支持,使得编程过程变得简单. 我是一个传统的C语言支持者,往后也打算慢慢的了解Python的强大. 今天我就学习一下使用python实现数据 ...
- python简单代码-用Python代码实现5种最好的、简单的数据可视化!
数据可视化是数据科学家工作的重要组成部分.在项目的早期阶段,您通常会进行探索性数据分析(EDA)以获得对数据的一些见解.创建可视化确实有助于使事情更清晰.更容易理解,尤其是对于更大.更高维度的数据集. ...
- python数据可视化代码_用Python代码实现5种最好的、简单的数据可视化!
数据可视化是数据科学家工作的重要组成部分.在项目的早期阶段,您通常会进行探索性数据分析(EDA)以获得对数据的一些见解.创建可视化确实有助于使事情更清晰.更容易理解,尤其是对于更大.更高维度的数据集. ...
- Matplotlib课程–学习Python数据可视化
Learn the basics of Matplotlib in this crash course tutorial. Matplotlib is an amazing data visualiz ...
- 禅道报表中关闭bug统计图_想要简单制作数据可视化分析报表?这个工具绝对好用...
说到分析报表,行外小白都会觉得很简单,不就是整理数据到表格吗?但对于从事相关职业的同行来说,肯定多多少少会被报表困扰过.特别是对于一些高级的Excel报表,可是它需要复杂的函数,使用编程代码处理,上手 ...
- django chart mysql,docker Django+mysql+ECharts+AngularJS简单搭建数据可视化
前面已经搭建了基于docker的Django+MySQL环境 下面用ECharts+AngularJS简单在HTML页面上展示MySQL数据库里的数据. 效果图.png {% load static ...
- 用Python采集热门城市景点数据并简单制作数据可视化图
前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 模块使用: 爬虫部分: requests parsel csv 数据分析部分: pandas pyecharts 如何安装模块: win + R 输入 c ...
- Python采集热门城市景点数据+简单制作数据可视化图
人生苦短,我用python 真的好想出去玩啊!!! 春游啊这是!!! 万物复苏的好季节!!! python 安装包+资料:点击此处跳转文末名片获取 一.模块使用: 爬虫部分: requests par ...
最新文章
- 在内网IT服务门户里申请Windows Azure虚拟机
- 模拟器中文输入法设置
- 第一章.良好应用程序基石(2)
- [渝粤教育] 莆田学院 电机与拖动基础(一) 参考 资料
- linux文件权限umask,linux系统中UMASK权限的用法讲解
- IIS里FTP多用户设置,终于不用Serv-U了,很方便,个人用够用了
- 五大领域总目标指南_幼儿教师这样读《指南》事半功倍
- GAN网络理解与实现
- 掌勤综合劳务管理系统
- 请问手机有没有简单好用图片去水印app?这4款手机软件可以实现去水印
- email地址格式怎么设置?申请个人电子邮件地址怎么写?
- C# 使用DataMatrix.net.dll进行二维码打印
- gromacs 安装_gromacs cpu版安装
- 数据防泄漏对于数据安全的重要性
- pygame副产品—大战外星人
- WINCC 7.5 SP2 与 S7-1500的通讯不上的处理
- 临界Hashgard:读懂智能合约与虚拟机,看这一篇就够了!
- 在行内样式 或 对象格式的样式中 使用scss变量
- 云课堂计算机教室怎么使用,云课堂计算机教室解决方案 3.0
- 页面分享到微博、qq、qqzone
热门文章
- 使用C#、NPOI生成Excel表格和统计图表
- 有道云笔记不同步_有道云笔记不能同步解决教程 有道云笔记突然出现无法同步失败如何办...
- 【Mybatis学习笔记】Mapper动态代理四项原则和注意事项
- Visual Attribute Transfer through Deep Image Analogy论文阅读笔记
- 红米K30至尊版广受消费者欢迎,饥渴营销再现
- 中微区块链集团参加第六届中国产业互联网大会
- Android 常用效果(各种进度条,酷炫loading动画,火箭升空,撒花以及趋势图)...
- 为什么人往往只能看到自己愿意相信的真相
- 计算机等级考试报名要二寸照片,给的这个尺寸是什么单位?
- 百度地图检索周围小吃添加大头针