Matplotlib官网https://matplotlib.org,Matplotlib是一个Python的2D绘图库。

可视化是整个数据分析的关键辅助工具,可以清晰的理解数据。

折线图(用于显示数据(数值型)的变化趋势,反应事物的变化情况)

简单实现

import matplotlib.pyplot as plt #导入模块
plt.plot([1,0,9],[4,5,6]) #.plot(x,y)绘制折线图的方法
plt.show() #显示图形

修改折线外观

from matplotlib import pyplot as plt
x = range(1,8)
y = [17,17,18,15,11,11,13]
plt.plot(x,y,color = 'red',alpha = 0.5,linestyle = '--',linewidth = 3,marker = '*')
#.plot()方法绘制折线图 color修改颜色 alpha参数修改透明度(0,1) linewidth 改变线宽 linestyle 线的样式 marker改变折点样式
plt.show()

设置图片大小和保存图片(.figure()方法设置图片大小及分辨率,.savefig()方法保存图片)

from matplotlib import pyplot as plt
import random x = range(2,26,2)
y = [random.randint(15,30) for i in x] #.figure()方法设置图片大小和分辨率
plt.figure(figsize = (20,8),dpi = 80)#figsize代表图片大小 单位英寸 dpi代表每一英寸上的像素点
plt.plot(x,y)
#绘制完成之后进行保存
plt.savefig('保存的路径')
plt.show() #show方法位于.savefig方法后

绘制x y轴刻度(通过.xticks(参数1,参数2)及.yticks(参数1,参数2)方法绘制xy轴刻度,参数1代表范围,参数2代表刻度格式)

from matplotlib import pyplot as plt
import random x = range(2,26,1)
y = [random.randint(15,30) for i in x]
plt.figure(figsize = (20,8),dpi = 80) #设置x y 值刻度
xticks_lable = ["{}:00".format(i) for i in range(24)]
plt.xticks(x,xticks_lable,rotation = 45)
#x代表有多少刻度值 xticks_lable代表每个刻度上的值 rotation倾斜度数
yticks_lable = ["{}C".format(i) for i in range(min(y),max(y)+1)]
plt.yticks(range(min(y),max(y)+1),yticks_lable) '''
plt.xticks(x)
plt.yticks(y)
'''
plt.plot(x,y)
plt.show()

一图多线及中文显示

x = range(0,120)
y1 = [random.randint(10,30) for i in x]
y2 = [random.randint(10,30) for i in x] plt.figure(figsize = (20,8),dpi = 80)
plt.plot(x,y1,linewidth = 3,label = '自己')
plt.plot(x,y2,linewidth = 3,linestyle = '--',label = '朋友')
#解决中文显示
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname = '/System/Library/Fonts/PingFang.ttc',size = 18) plt.xlabel('时间',fontproperties = my_font)#.xlabel()添加x轴说明
plt.xlabel('次数',fontproperties = my_font)
plt.title('每分钟变化数',fontproperties = my_font,color = 'red') #图片名称 plt.grid(alpha = 0.4) #添加网格
plt.legend(prop = my_font,loc = 'lower left') #添加图例
plt.show()

设置坐标轴范围

import matplotlib.pyplot as plt
import numpy as np x = np.arange(-10,11,1)
y = x ** 2 plt.plot(x,y)
plt.xlim([-5,5])#调节x轴左右的显示范围
#plt.xlim(xmin = -4)#调节x轴左边最小值
#plt.xlim(xmax = 5)#调节x轴右边最大值
#plt.ylim(ymin = 0)#调节y轴最小值
plt.show()

改变坐标轴的显示方式

import matplotlib.pyplot as plt
import numpy as np y = range(0,14,2)
x = [-3,-2,-1,0,1,2,3] ax = plt.gca()
#设置上下左右四个框线的颜色
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['left'].set_color('red')
ax.spines['bottom'].set_color('blue')
#设置框线位置
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0)) plt.plot(x,y)
plt.show()

散点图(显示分布规律,判读变量之间是否存在关联趋势)

from matplotlib import pyplot as plt

from matplotlib import font_manager

y = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]

x = range(1,32)

# 设置图形大小

plt.figure(figsize=(20,8),dpi=80)

# 使用scatter绘制散点图

plt.scatter(x,y,label= '3月份')

# 调整x轴的刻度

my_font = font_manager.FontProperties(fname='/System/Library/Fonts/PingFang.ttc',size=10)

_xticks_labels = ['3月{}日'.format(i) for i in x]

plt.xticks(x[::3],_xticks_labels[::3],fontproperties=my_font,rotation=45) #修改刻度

plt.xlabel('日期',fontproperties=my_font)

plt.ylabel('温度',fontproperties=my_font)

# 图例

plt.legend(prop=my_font)

plt.show()

条形图(绘制离散的数据,比较数据(类别数据)之间差别)

纵向条形图

from matplotlib import pyplot as plt

from matplotlib import font_manager

a = ['流浪地球','疯狂的外星人','飞驰人生','大黄蜂','熊出没·原始时代','新喜剧之王']

b = ['38.13','19.85','14.89','11.36','6.47','5.93']

# b =[38.13,19.85,14.89,11.36,6.47,5.93]

my_font = font_manager.FontProperties(fname='/System/Library/Fonts/PingFang.ttc',size=10)

plt.figure(figsize=(20,8),dpi=80)

# 绘制条形图.bar

rects = plt.bar(range(len(a)),[float(i) for i in b],width=0.3,color= 'red') #返回包含每个条形的可跌代对象 width设置条形的宽度

plt.xticks(range(len(a)),a,fontproperties=my_font) #设置x轴刻度格式

plt.yticks(range(0,41,5),range(0,41,5))

# 在条形图上加标注(水平居中)

for rect in rects:
height = rect.get_height() #获取条形的高度
plt.text(rect.get_x() + rect.get_width() / 2, height+0.3, str(height),ha="center") plt.show()

并列及罗列条形图

import matplotlib.pyplot as plt
import numpy as np
index = np.arange(4)
BJ = [50,55,53,60]
Sh = [44,66,55,41] # 并列
plt.bar(index,BJ,width=0.3)
plt.bar(index+0.3,Sh,width=0.3,color='green')
plt.xticks(index+0.3/2,index) # 罗列
# plt.bar(index,Sh,bottom=BJ,width=0.3,color='green')
plt.show()

直方图(与条形图相似,绘制连续性的数据展示和数据的分布情况)

# 绘制直方图

# 设置组距

distance = 2

# 计算组数

group_num = int((max(time) - min(time)) / distance)

# 绘制直方图

plt.hist(time, bins=group_num) #.hist方法绘制直方图,参数1为数据,参数2为组数

饼状图(不同分类的占比情况)

import matplotlib.pyplot as plt
import matplotlib
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname='/System/Library/Fonts/PingFang.ttc',size=10) label_list = ["第一部分", "第二部分", "第三部分"] # 各部分标签
size = [55, 35, 10] # 各部分大小
color = ["red", "green", "blue"] # 各部分颜色
explode = [0, 0.05, 0] # 各部分突出值
"""
绘制饼图
explode:设置各部分突出
label:设置各部分标签
labeldistance:设置标签文本距圆心位置,1.1表示1.1倍半径
autopct:设置圆里面文本
shadow:设置是否有阴影
startangle:起始角度,默认从0开始逆时针转
pctdistance:设置圆内文本距圆心距离
返回值
l_text:圆内部文本,matplotlib.text.Text object
p_text:圆外部文本
""" #.pie绘制饼状图,返回一个元组对象
patches, l_text, p_text = plt.pie(size,
explode=explode,
colors=color,
labels=label_list,
labeldistance=1.1,
autopct="%1.1f%%",
shadow=False,
startangle=90,
pctdistance=0.6) for t in l_text:
t.set_fontproperties(my_font) plt.legend(prop=my_font)
plt.legend()
plt.show()

2020-03-22 16:58

Python库-Matplotlib的更多相关文章

  1. 顶级Python库

    绝不能错过的24个顶级Python库 Python有以下三个特点: · 易用性和灵活性 · 全行业高接受度:Python无疑是业界最流行的数据科学语言 · 用于数据科学的Python库的数量优势 事实 ...

  2. CentOS7 安装python库(numpy、scipy、matplotlib、scikit-learn、tensorflow)

    0.1准备工作 安装好CentOS7,配置好网络,确保网络畅通. 0.2root授权 首先:当前用户为kaid # vim /etc/sudoers 在root ALL=(ALL) ALL之后添加: ...

  3. 用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)

    在用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)一文里,我讲述了通过爬虫接口得到股票数据并绘制出K线均线图形的方式,在本文里,将 ...

  4. 11个并不广为人知,但值得了解的Python库

    这是一篇译文,文中提及了一些不常见但是有用的Python库 原文地址:http://blog.yhathq.com/posts/11-python-libraries-you-might-not-kn ...

  5. Python 库大全

    作者:Lingfeng Ai链接:http://www.zhihu.com/question/24590883/answer/92420471来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非 ...

  6. Python数据分析Python库介绍(1)

    一直想写点Python的笔记了,今天就闲着无聊随便抄点,(*^__^*) 嘻嘻…… ---------------------------------------------------------- ...

  7. python 库安装笔记

    python 库安装笔记 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-2-22 友情提示 安装python库的过程中 ...

  8. python之matplotlib绘图基础

    Python之matplotlib基础 matplotlib是Python优秀的数据可视化第三方库 matplotlib库的效果可参考 http://matplotlib.org/gallery.ht ...

  9. 利用Python进行数据分析——重要的Python库介绍

    利用Python进行数据分析--重要的Python库介绍 一.NumPy 用于数组执行元素级计算及直接对数组执行数学运算 线性代数运算.傅里叶运算.随机数的生成 用于C/C++等代码的集成 二.pan ...

随机推荐

  1. (转)嵌入式linux系统开发过程中遇到的——volatile

    原文地址:http://blog.csdn.net/HumorRat/article/details/5631023 对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射的.如果系统结构支持 ...

  2. 为什么 String 是 immutable 类

    二哥,你能给我说说为什么 String 是 immutable 类(不可变对象)吗?我想研究它,想知道为什么它就不可变了,这种强烈的愿望就像想研究浩瀚的星空一样.但无奈自身功力有限,始终觉得雾里看花终 ...

  3. nlogn的最长不下降子序列【tyvj1254挑选士兵】

    var a,d:Array[-..]of longint; i,n,m,k,l:longint; function erfen(x:longint):longint; var mid,h,t:long ...

  4. Centos7安装Elasticsearch和Kibana

    这里使用的6.6.0版本,ES需要JDK环境,对应1.8 Elasticsearch安装: 1.下载:https://elasticsearch.cn/download/ 2.解压: 3.修改配置:j ...

  5. 实用干货丨如何使用Prometheus配置自定义告警规则

    前 言 Prometheus是一个用于监控和告警的开源系统.一开始由Soundcloud开发,后来在2016年,它迁移到CNCF并且称为Kubernetes之后最流行的项目之一.从整个Linux服务器 ...

  6. MySQL windows中的存储备份

    数据备份对于经常在运维部署方面的工作者来说,是一件相对简单的事情,都可以通过某一个SQL工具进行备份,但是如果在项目运行当中,我们需要对数据进行实时,或者是每隔一星期,一个月,等等进行数据的备份,这样 ...

  7. Django实现简单的用户添加、删除、修改等功能

    一. Django必要的知识点补充 1. templates和static文件夹及其配置 1.1 templates文件夹 所有的HTML文件默认都放在templates文件夹下. 1.2 stati ...

  8. PHP7内核(七):常见变量类型的基本结构

    上篇文章讲述了变量的存储结构zval,今天我们就来学习一下几个常见变量类型的基本结构. 一.类型一览 zval中的u1.v.type用来存储变量的类型,而zval.value存储的是不同类型对应的值, ...

  9. coding++:解决Not allowed to load local resource错误-SpringBoot配置虚拟路径

    1.在SpringBoot里上传图片后返回了绝对路径,发现本地读取的环节上面出现了错误(Not allowed to load local resource),一开始用的是直接本地路径. 但是在页面上 ...

  10. 第二次实验报告:使用 Packet Tracer 分析应用层协议

    个人信息: 姓名:倪晓东 班级:计算1811 学号:201821121020 1 实验目的 熟练使用Packet Tracer工具.分析抓到的应用层协议数据包,深入理解应用层协议,包括语法.语义.时序 ...