matplotlib|matplotlib 数据可视化 - 图表属性
文章图片
import numpy as np
import matplotlib.pyplot as plt
为图表添加文本
- title() 添加标题
- xlabel() 为x轴添加标签
- ylabel() 为y轴添加标签
plt.axis([0,5,0,20])
plt.title('标题')
plt.xlabel('横轴')
plt.ylabel('纵轴')
plt.plot([1,2,3,4],[1,4,9,16],'ro')# 'ro'表示红色的圆点
plt.show()
文章图片
output_2_0.png 修改文本属性:字体与颜色
plt.axis([0,5,0,20])
plt.title('标题',fontsize=20)# fontsize指定字体大小,另外 fontname 可指定字体
plt.xlabel('横轴')
plt.ylabel('纵轴')
plt.plot([1,2,3,4],[1,4,9,16],'ro')# 'ro'表示红色的圆点
plt.show()
文章图片
output_4_0.png 在图表的任意位置添加文本
text()
函数可在图表的任意位置添加文本,前两个参数指定位置,最后一个参数为文本plt.axis([0,5,0,20])
plt.title('标题',fontsize=20)
plt.xlabel('横轴')
plt.ylabel('纵轴')plt.text(1,1.5,'文本一')
plt.text(2,4.5,'文本二')
plt.text(3,9.5,'文本三')
plt.text(4,16.5,'文本四')plt.plot([1,2,3,4],[1,4,9,16],'ro')
plt.show()
文章图片
output_6_0.png 在文本中显示表达式
matplotlib 整合了 LaTeX 表达式,支持在图表中插入数学表达式。使用上,需要将表达式置于两个$之间
通常,只需要在包含 LaTeX 表达式的字符串前添加 r字符,表明它后面是原始文本,不能对其进行转义操作。
plt.axis([0,5,0,20])
plt.title('标题',fontsize=20)
plt.xlabel('横轴')
plt.ylabel('纵轴')
plt.text(1,1.5,'文本一')
plt.text(2,4.5,'文本二')
plt.text(3,9.5,'文本三')
plt.text(4,16.5,'文本四')plt.text(1.1,12,'$y=x^2$',fontsize=20,bbox={'facecolor':'yellow','alpha':0.2})plt.plot([1,2,3,4],[1,4,9,16],'ro')
plt.show()
文章图片
output_8_0.png 添加网格
使用函数
grid()
plt.axis([0,5,0,20])
plt.title('标题',fontsize=20)
plt.xlabel('横轴')
plt.ylabel('纵轴')
plt.text(1,1.5,'文本一')
plt.text(2,4.5,'文本二')
plt.text(3,9.5,'文本三')
plt.text(4,16.5,'文本四')
plt.text(1.1,12,'$y=x^2$',fontsize=20,bbox={'facecolor':'yellow','alpha':0.2})plt.grid(True)plt.plot([1,2,3,4],[1,4,9,16],'ro')
plt.show()
文章图片
output_10_0.png 添加图例
legend()
函数可为图表添加图例plt.axis([0,5,0,20])
plt.title('标题',fontsize=20)
plt.xlabel('横轴')
plt.ylabel('纵轴')
plt.text(1,1.5,'文本一')
plt.text(2,4.5,'文本二')
plt.text(3,9.5,'文本三')
plt.text(4,16.5,'文本四')
plt.text(1.1,12,'$y=x^2$',fontsize=20,bbox={'facecolor':'yellow','alpha':0.2})
plt.grid(True)plt.plot([1,2,3,4],[1,4,9,16],'ro')
plt.plot([1,2,3,4],[1+2,4+2,9+2,16+2],'b*')
plt.plot([1,2,3,4],[1+5,4+5,9+5,16+5],'y^')plt.legend(['图例一', '图例二', '图例三'], loc=0)# 一定要在plot()之后plt.show()
文章图片
output_12_0.png
legend()
函数中,第一个参数可图例的名称,第二个参数loc可指定位置,它的值分别有:- 0 最佳位置
- 1 右上角
- 2 左上角
- 3 右下角
- 4 左下角
- 5 右侧
- 6 左侧垂直居中
- 7 右侧垂直居中
- 8 下方水平居中
- 9 上访水平居中
- 10 正中间
如果想把写了很长的代码保存下来,以方便下次使用,可以使用魔术命令
%save
,后面跟上文件名和代码对应的命令提示符号码。示例:
%save my_code 46
File `my_code.py` exists. Overwrite (y/[N])?y
46 is neither a string nor a macro.
这样,会在当前工作目录下生成一个叫my_code.py的文件,里面的代码就是第46个单元里写的代码。
如果想将保存的代码恢复到编辑器中来,可使用魔术命令
%load
示例:
%load my_code.py
# %load my_code.py
plt.axis([0,5,0,20])
plt.title('标题',fontsize=20)
plt.xlabel('横轴')
plt.ylabel('纵轴')
plt.text(1,1.5,'文本一')
plt.text(2,4.5,'文本二')
plt.text(3,9.5,'文本三')
plt.text(4,16.5,'文本四')
plt.text(1.1,12,'$y=x^2$',fontsize=20,bbox={'facecolor':'yellow','alpha':0.2})
plt.grid(True)plt.plot([1,2,3,4],[1,4,9,16],'ro')
plt.plot([1,2,3,4],[1+2,4+2,9+2,16+2],'b*')
plt.plot([1,2,3,4],[1+5,4+5,9+5,16+5],'y^')plt.legend(['图例一', '图例二', '图例三'], loc=0)# 一定要在plot()之后plt.show()
文章图片
output_17_0.png 另外,
%run
可在会话中运行py文件,这省略不作详解。将会话转换成HTML文件
这个功能不需要写代码控制,直接点击 文件 》 下载 》 HTML 即可
将图表直接保存为图片
使用
savefig()
函数plt.axis([0,5,0,20])
plt.title('标题',fontsize=20)
plt.xlabel('横轴')
plt.ylabel('纵轴')
plt.text(1,1.5,'文本一')
plt.text(2,4.5,'文本二')
plt.text(3,9.5,'文本三')
plt.text(4,16.5,'文本四')
plt.text(1.1,12,'$y=x^2$',fontsize=20,bbox={'facecolor':'yellow','alpha':0.2})
plt.grid(True)
plt.plot([1,2,3,4],[1,4,9,16],'ro')
plt.plot([1,2,3,4],[1+2,4+2,9+2,16+2],'b*')
plt.plot([1,2,3,4],[1+5,4+5,9+5,16+5],'y^')
plt.legend(['图例一', '图例二', '图例三'], loc=0)
plt.show()plt.savefig('my_png.png')# 指定图片名称与格式,将会保存到当前工作目录下
文章图片
output_21_0.png
谈谈日期值 先来看一个糟糕的日期值显示问题:
import datetime
import numpy as np
import matplotlib.pyplot as plt start_date = datetime.datetime.now().date()
date_list = [start_date - datetime.timedelta(days = i) for i in range(5)]
value_list = [i for i in range(5)]
plt.plot(date_list,value_list)
plt.show()
文章图片
output_23_0.png 哦!我想可能是我需要换一副度数更高的眼镜了!
……
matplotlib.datas
模块专门用于管理日期类型的数据,这里可以只显示年月,来简化数据,并且还要定义好时间的尺度。示例:
import datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates# 导入时间管理模块months = mdates.MonthLocator()
days = mdates.DayLocator()
timeFmt = mdates.DateFormatter('%Y-%m')
start_date = datetime.datetime.now().date()
date_list = [start_date - datetime.timedelta(days = i*30) for i in range(5)]
value_list = [i for i in range(5)]
fig, ax = plt.subplots()
plt.plot(date_list,value_list)
ax.xaxis.set_major_locator(months)
ax.xaxis.set_major_formatter(timeFmt)
ax.xaxis.set_minor_locator(days)
plt.show()
文章图片
output_25_0.png 【matplotlib|matplotlib 数据可视化 - 图表属性】解析:
-
MonthLocator()
指定月份的时间尺度 -
DayLocator()
指定日的时间尺度 -
DateFormatter()
指定时间格式 -
subplots()
创建一个图形和一组副图 -
set_major_locator(months)/set_minor_locator(days)
对x轴进行设置日期 -
set_major_formatter(timeFmt)
指定日期格式
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 为什么孩子一定要学会可视化思维!
- 使用协程爬取网页,计算网页数据大小
- Java|Java基础——数组
- Python数据分析(一)(Matplotlib使用)
- Jsr303做前端数据校验
- Spark|Spark 数据倾斜及其解决方案
- 数据库设计与优化
- 爬虫数据处理HTML转义字符
- 数据库总结语句