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“,则尝试剪除图表周围空白部分
posted @ 2020-04-01 16:21  Jeff的技术栈  阅读(268)  评论(0编辑  收藏  举报
回顶部