matplotlib画图模块
1、安装
安装方式:
!pip install matplotlib
引用方法:
import matplotlib.pyplot as plt
2、方法
函数 | 说明 | |
---|---|---|
plt.plot(x,y,fmt) | 坐标系,折线图 | |
plt.boxplot(data,notch,position) | 箱型图 | |
plt.bar(left,height,width,bottom) | 柱状图 | |
plt.barh(width,bottom,left,height) | 横向柱状图 | |
plt.polar(theta,r) | 极坐标系 | |
plt.pie(data,explode) | 饼图 | |
plt.psd(x,NFFT=256,pad_to,Fs) | 功率谱密度图 | |
plt.specgram(x,NFFT=256,pad_to,F) | 谱图 | |
plt.cohere(x,y,NFFT=256,Fs) | X-Y相关性函数 | |
plt.scatter(x,y) | 散点图 | |
plt.step(x,y,where) | 步阶图 | |
plt.hist(x,bins,normed) | 直方图 |
3、参数
方法 | 描述 | |
---|---|---|
plt.title() | 设置图像标题 | |
plt.xlabel() | 设置x轴名称 | |
plt.ylabel() | 设置y轴名称 | |
plt.xlim() | 设置x轴范围 | |
plt.ylim() | 设置y轴范围 | |
plt.xticks() | 设置x轴刻度 | |
plt.yticks() | 设置y轴刻度 | |
plt.legend() | 设置曲线图例 |
plt.figure(figsize=(10,6)) # 调整画布
plt.rcParams['font.sans-serif'] = ['SimHei'] # 导入字体
plt.title('我是标题',fontsize=24,color='red') # 设置标题
plt.xlabel('x轴',fontsize=24,color='red') # 设置X轴名字
plt.ylabel('y轴',fontsize=24,color='red') # 设置y轴名字
plt.plot(x,y,color='m',linestyle = '-.',marker='o')
plt.show() # 展示画图
# 区域划分
data = pd.cut(time,(0,60,90,120,150,1000)).value_counts() # 对时长的划分,并计数
4、中文字体展示问题
windows解决方法:
plt.rcParams['font.sans-serif'] = ['SimHei'] # 导入本地的字体
因为mac本地没有字体,需要下载。windows导入就行
5、线形图
plt.plot() # 绘图线型图函数
plt.show() # 显示图像
在jupyter notebook中不执行这条语句也是可以将图形展示出来
import matplotlib.pyplot as plt
import numpy as np
data = np.arange(10)
plt.plot(data)
plt.show() # 显示图像,在notebook中不执行这一句也可以
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
执行结果:
plt.figure(figsize=(10,6)) # 调整画布
plt.rcParams['font.sans-serif'] = ['SimHei'] # 导入字体
plt.title('我是标题',fontsize=24,color='red') # 设置标题
plt.xlabel('x轴',fontsize=24,color='red') # 设置X轴名字
plt.ylabel('y轴',fontsize=24,color='red') # 设置y轴名字
plt.plot(x,y,color='m',linestyle = '-.',marker='o')
plt.show()
6、柱状图
简单的一个柱状图
# 柱状图
data = [12,34,23,54]
labels = ['Jan','Fed','Mar','Apr']
plt.xticks([0,1,2,3],labels) # 设置x轴刻度
plt.bar([0,1,2,3],data)
每个国家上映电影数量柱状图
读取并整理信息
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_csv('./douban_movie.csv') # 读取本地的文件
df.head() # 展示前5行数据
data = df.groupby('产地').size().sort_values(ascending=False) # 对产地进行分组,并排序
x = data.index # x索引
y = data.values # y索引
绘图
plt.figure(figsize=(10,6)) # 调整画图大小
plt.rcParams['font.sans-serif'] = ['SimHei'] # 导入字体
plt.title('电影情况表') # 标题
plt.xlabel('产地') # x轴名称
plt.ylabel('数量') # y轴名称
plt.xticks(rotation=45) # 调整x轴刻度,旋转45度
# 给每个坐标点写上数据信息
for a,b in zip(x,y):
plt.text(a,b+100,b, ha='center',size=12)
plt.bar(x,y) # 绘制柱状图
plt.show() # 展示
7、饼图
电影时长比列图
df = pd.read_csv('./douban_movie.csv') # 读取本地的文件
df.head() # 展示前5行数据
time = df['时长'] # 筛选数据
data = pd.cut(time,(0,60,90,120,150,1000)).value_counts() # 对时长的划分,并计数
绘图
x = data.index
y = data.values
plt.figure(figsize=(10,6)) # 调整画布
# 画图,并获取到三个值
patchs,l_text,p_text = plt.pie(y,labels=x,autopct='%.2f%%',)
for p in p_text:
p.set_size(15)
p.set_color('white')
plt.show()
8、散点图
# 散点图
import random
x = np.random.randn(100)
y = np.random.randn(100)
plt.scatter(x,y)
9、保存图表到文件
plt.savafig('文件名.拓展名')
文件类型是通过文件扩展名推断出来的。因此,如果你使用的是.pdf,就会得到一个PDF文件。
plt.savefig('123.pdf')
savefig并非一定要写入磁盘,也可以写入任何文件型的对象,比如BytesIO:
from io import BytesIO
buffer = BytesIO()
plt.savefig(buffer)
plot_data = buffer.getvalue()
参数 | 说明 | |
---|---|---|
fname | 含有文件路径的字符串或者Python的文件型对象。 | |
dpi | 图像分辨率,默认为100 | |
format | 显示设置文件格式("png","jpg","pdf","svg","ps",...) | |
facecolor、edgecolor | 背景色,默认为"W"(白色) | |
bbox_inches | 图表需要保存的部分。设置为”tight“,则尝试剪除图表周围空白部分 |
选择了IT,必定终身学习