颜色和样式

八种内建默认颜色缩写
b:blue g:green r:red c:cyan m:magenta y:yellow k:black w:white
其它颜色表示方法可以参照百度给的值
https://baike.baidu.com/item/%E5%8D%81%E5%85%AD%E8%BF%9B%E5%88%B6%E9
%A2%9C%E8%89%B2%E7%A0%81/10894232?fromtitle=%E9%A2%9C%E8%89%B2%E5%8D
%81%E5%85%AD%E8%BF%9B%E5%88%B6&fromid=15455510&fr=aladdin
灰色阴影
html 十六进制
RGB元组
 import numpy as np
import matplotlib.pyplot as plt y=np.arange(1,5)
# plt.plot(y,'--',marker='o',color='g')
# '--',marker='o',color='g',分别表示线型,点型,颜色 # plt.plot(y+1,'-.',marker='D',color='0.5')
# plt.plot(y+2,':',marker='^',color='#FF00FF')
# plt.plot(y+3,'-',marker='p',color=(0.1,0.2,0.3)) # 可以将颜色,点型,线型写成一个字符串
plt.plot(y,'cx--') plt.show()
面向对象 VS Matlab Style

pyplot:经典高层封装,到目前为止,我们所用的都是pyplotpylab:将Matplotlib和NumPy合并的模块,模拟Matlab的编程环境面向对象的方式:Matplotlib的精髓,更基础和底层的方式

pyplot:简单易用。交互使用方便,可以根据命令实时作图。但底层定制能力不足

pylab:完全封装,环境最接近Matlab。不推荐使用

面向对象(Object-Oriented)的方式:接近Matplotlib基础和底层的方式。难度稍大。

但定制能力强而且是Matplotlib的精髓

总结:实战中推荐,根据需求,总和使用pyplot和面向对象的方式,显示导入numpy

常用模块导入代码:

import matplotlib.pyplot as plt

import numpy as np

 import matplotlib.pyplot as plt
import numpy as np x = np.arange(0, 10, 1)
y = np.random.randn(len(x)) fig = plt.figure()
# 面向对象方法,要先建立一个画布 ax = fig.add_subplot(111)
# 相当于将要在画布上建立一个一行一列的图,最后数字1表示要画的图在第一个位置
# ax = fig.add_subplot(221) f1 = plt.plot(x, y) t = ax.set_title('object oriented') # 为图命名 # plt.plot(x, y)
plt.show()

多图

要创建多个画布即应该在代码中每画一个图就需要插入fig=plt.figure()如下代码

 import matplotlib.pyplot as plt
# import numpy as np figl=plt.figure()
ax1=figl.add_subplot(111)
ax1.plot([1,2,3],[3,2,1]) fig2=plt.figure()
ax2=fig2.add_subplot(111)
ax2.plot([1,2,3],[3,2,5]) plt.show()

网格

在画图的时候可以添加背景网格的形式增加图的可读性

 import matplotlib.pyplot as plt
import numpy as np x = np.arange(0,10,1)
fig = plt.figure()
ax = fig.add_subplot(111)
plt.plot(x,x*2) ax.grid(color='g')
# 这是要给所画的图添加网格的代码行 plt.show()

图例

图例是图表中一种很重要的说明方式,在matplotlib中也可以添加图例

 import matplotlib.pyplot as plt
import numpy as np x=np.arange(1,11,1) # 添加图例的第一种方式
# plt.plot(x, x*2, label='Normal')
# plt.plot(x, x*3, label='Fast')
# plt.plot(x, x*4, label='Faster') plt.plot(x, x*2)
plt.plot(x, x*3)
plt.plot(x, x*4)
plt.legend(['Normal','Fast','Faster'])
plt.legend(loc=0) # 图例放置最优位置,官网上有更多的相关解释
plt.legend(ncol=3) # 图例分三列放 plt.show()

坐标轴范围

 import matplotlib.pyplot as plt
import numpy as np x = np.arange(-10,11,1) plt.plot(x,x*x) # plt.axis([-5,5,20,60]) # 前两个数字表示x轴范围,后两个数字表示y轴范围
plt.axis([-10,10,0,100])
# plt.xlim([-5,5]) # 可以只改变x轴范围y轴不变
# plt.ylim([0,60])
# plt.xlim(xmin=-5,xmax=5) # 与plt.xlim([-5,5]) 效果一样
plt.xlim(xmin=-5) # 只改变x轴一端的范围
plt.show()

坐标轴刻度

 import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import datetime
x = np.arange(1,11,1)
plt.plot(x,x)
ax=plt.gca() # 表示获取当前的坐标轴,对坐标轴操作需要添加此行 # ax.locator_params('x',nbins=5)
# 给x轴添加刻度 ax.locator_params('y', nbins=5)
# 给y轴添加刻度 # 下面是x轴的日期刻度标注方法
fig=plt.figure()
start=datetime.datetime(2015,1,1)
stop=datetime.datetime(2016,1,1)
delta=datetime.timedelta(days=1) dates = mpl.dates.drange(start,stop,delta)
y=np.random.rand(len(dates))
ax=plt.gca()
ax.plot_date(dates,y,linestyle='-',marker='') date_format=mpl.dates.DateFormatter('%Y-%m')
ax.xaxis.set_major_formatter(date_format) # xaxis表示在x轴添加日期刻度
fig.autofmt_xdate() # 由于日期的数字过长,所以需要matplotlib自动优化摆放方式 plt.show()

添加坐标轴

 import matplotlib.pyplot as plt
import numpy as np x=np.arange(2,20,1)
y1=x*x
y2=np.log(x) # 这是添加y轴
# plt.plot(x,y1)
# plt.twinx() #创建一个双胞胎x轴
# plt.plot(x,y2,'r') # 这是添加x轴
plt.plot(y1, x)
plt.twiny() #创建一个双胞胎y轴
plt.plot(y2, x, color='r') # 这是用面向对象的方式添加坐标轴
# fig = plt.figure()
# ax1 = fig.add_subplot(111)
# ax1.plot(x,y1)
# ax1.set_ylabel('Y1')
# ax2=ax1.twinx()
# ax2.plot(x,y2,'r')
# ax2.set_ylabel('y2')
# ax1.set_xlabel('Compare Y1 and Y2') plt.show()


matplotlib笔记2的更多相关文章

  1. Python matplotlib笔记

    可视化的工具有很多,如Tableau,各种JS框架,我个人感觉应该是学JS最好,因为JS不需要环境,每个电脑都有浏览器,而像matplotlib需要Python这样的开发环境,还是比较麻烦的,但是毕竟 ...

  2. matplotlib笔记3

    关于matplotlib的绘制图形的基本代码,我们可以参照下面的连接 https://matplotlib.org/gallery/index.html https://matplotlib.org/ ...

  3. matplotlib笔记1

    散点图-scatter 散点图显示两组数据的值,每个点的坐标位置由变量的值决定由一组不连接的点完成,用于观察两种变量的相关 import numpy as np import matplotlib.p ...

  4. matplotlib笔记——legend用法

    rates = [0.01, 0.001, 0.0001] models = {} costs = np.array([[0.7, 0.9, 0.4, 0.6, 0.4, 0.3, 0.2, 0.1] ...

  5. Google TensorFlow深度学习笔记

    Google Deep Learning Notes Google 深度学习笔记 由于谷歌机器学习教程更新太慢,所以一边学习Deep Learning教程,经常总结是个好习惯,笔记目录奉上. Gith ...

  6. Matplotlib:mpl_toolkits.mplot3d工具包

    简介 mpl_toolkits.mplot3d是Matplotlib里面专门用来画三维图的工具包,官方指南请点击此处<mplot3d tutorial> 使用 导入 使用from mpl_ ...

  7. Matplotlib 学习笔记

    注:该文是上了开智学堂数据科学基础班的课后做的笔记,主讲人是肖凯老师. 数据绘图 数据可视化的原则 为什么要做数据可视化? 为什么要做数据可视化?因为可视化后获取信息的效率高.为什么可视化后获取信息的 ...

  8. Matplotlib学习笔记(二)

    原  Matplotlib学习笔记 参考:Python数据科学入门教程 Python3.6.1 jupyter notebook .caret, .dropup > .btn > .car ...

  9. Matplotlib学习笔记(一)

    原   matplotlib学习笔记 参考:Python数据科学入门教程 Python3.6.1 jupyter notebook .caret, .dropup > .btn > .ca ...

随机推荐

  1. (转载):nmon使用

    转:http://www.cnblogs.com/mululu/p/6398483.html 博客园 首页 新随笔 联系 管理 订阅 随笔- 76  文章- 1  评论- 2  Nmon的安装及使用 ...

  2. @Transactional 注解参数详解

    Transactional参数说明 参数名称 功能描述 readOnly 该属性用于设置当前事务是否为只读事务,设置为true表示只读,false则表示可读写,默认值为false.例如:@Transa ...

  3. elasticsearch自定义动态映射

    https://www.elastic.co/guide/cn/elasticsearch/guide/current/custom-dynamic-mapping.html如果你想在运行时增加新的字 ...

  4. Redis学习(一) —— 基本使用与原理

    一.数据结构 string Redis字符串是可修改字符串,在内存中以字节数组形式存在. 下面是string在源码中的定义,SDS(Simple Dynamic String) struct SDS& ...

  5. OAuth 2.0 的四种方式

    上一篇文章介绍了 OAuth 2.0 是一种授权机制,主要用来颁发令牌(token).本文接着介绍颁发令牌的实务操作. 下面我假定,你已经理解了 OAuth 2.0 的含义和设计思想,否则请先阅读这个 ...

  6. Rabbitmq Plugin configuration unchanged. 问题完全解决方案

    当执行:rabbitmq-plugins.bat enable rabbitmq_management 命令时候出现 错误如下: Plugin configuration unchanged. App ...

  7. HTTP和WSGI协议

    HTTP协议简介 超文本传输协议(HyperText Transfer Protocol)是一种应用层协议.HTTP是万维网的数据通信的基础.设计HTTP最初的目的是为了提供一种发布和接收HTML页面 ...

  8. python 中密码处理函数

    一个简单的对某字符串进行 MD5加密 import hashlib def md5_pwd(pwd): """ 为了防止解密,hashlib.md5时加入自己的字段 将密 ...

  9. PAT 甲级1057 Stack (30 分)(不会,树状数组+二分)*****

    1057 Stack (30 分)   Stack is one of the most fundamental data structures, which is based on the prin ...

  10. 将Python的Django框架与认证系统整合的方法

    将Python的Django框架与认证系统整合的方法 这篇文章主要介绍了将Python的Django框架与认证系统整合的方法,包括指定认证后台和编写认证后台等内容,需要的朋友可以参考下 将Django ...