Matplotlib常用图绘制

 Matplotlib 可以用来绘制各种静态,动态,交互式的图表。 Matplotlib 是一个非常强大的 Python 2D画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。
 通过做图表来分析数据实在是一个非常棒的方法,由于我偶尔忘记语法,还得翻之前的笔记,难受。下面就画了些常用的图,记一记,记一记。

1、折线图

import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
x1 = [1,2,3] 
y1 = [5,7,4]
x2 = [1,2,3] 
y2 =[10,14,12]
matplotlib.rcParams['font.sans-serif'] = ['SimHei']#中文显示问题
f=plt.figure(figsize=(12,10))#调整图像大小
plt.plot(x1,y1,label='First Line')
plt.plot(x2, y2, label='Second Line')

plt.xlabel("Plot Number",fontsize = 20)#x轴 标签及调整字体大小
plt.ylabel("Important var",fontsize = 20)#y轴 标签及调整字体大小
plt.title("标题", fontsize = 20)#标题
plt.legend()#显示图例

plt.xlim(0,4)#调整x轴大小
plt.ylim(0,15)#调整y轴大小
plt.grid()#添加格线

plt.show()

效果如下:

2、柱状图

matplotlib.rcParams['font.sans-serif'] = ['SimHei']

label_list = ["AUC","MAP","MRR","Prec","Rec","F1","NDGC","Call"]

num_list_1 = [ 0.8395789534863245,0.03947255032401116,0.4421931735657211,0.18845315904139434,0.061183509516103594,  0.07578339296217934, 0.20391161229968288, 0.5533769063180828]
num_list_2 = [0.8099706571182651, 0.07124258816665524,0.5007884899720522,0.29520697167755994,0.051690038913594256,0.07702843749844428, 0.30278346199328815,0.664488017429194]
x = range(len(num_list_1))
#f=plt.figure(figsize=(12,10))

rects_1 = plt.bar( x,height = num_list_1,width = 0.4,alpha = 0.8,color = "red",label = "MBPR")
rects_2 = plt.bar([i+0.4 for i in x],height = num_list_2,width = 0.4,alpha = 0.8,color = "blue",label = "BPR")#柱状图对比

plt.ylim(0,1)
plt.ylabel("指标")

plt.xticks([index + 0.2 for index in x], label_list)#自定义x 轴含义

plt.xlabel("模型")

plt.title("MBPR、BPR对比图")
plt.legend()

plt.show()

效果如下:

3、散点图

x = [1,2,3,4,5,6]
y = [1,2,3,4,5,6]
#f = plt.figure(figsize=(12,10))
plt.scatter(x,y,color="r")

效果如下:

4、饼状图

#f=plt.figure(figsize=(12,10))
slices = [7,2,2,13]
activities = ['sleeping','eating','working','playing'] 
cols = ['c','m','r','b']
plt.pie( slices,labels=activities,colors=cols,startangle=90,shadow= True ,explode=(0,0.3,0,0),autopct='%1.1f%%')
# autopct='%1.1f%%' 百分比

效果如下:

5、箱式图

import seaborn as sns
#f=plt.figure(figsize=(12,10))
sns.set_style("whitegrid")
data = np.random.normal(size=(20, 6)) + np.arange(6) / 2
sns.boxplot(data=data)

效果如下:

6、热度图

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np; 
np.random.seed(0)
import seaborn as sns;
sns.set()

uniform_data = np.random.rand(3, 3)
#print (uniform_data)
heatmap = sns.heatmap(uniform_data)

效果如下:

7、子图

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-10, 10, 100)
y =2*np.cos(x)**5 + 3*np.sin(x)**3

#定义画布和子图数量
fig,axes=plt.subplots(2,3,figsize=(20,18),facecolor='#ccddef')
#添加整个画布的标题
fig.suptitle('我是最大的标题',fontsize=20)
#利用text属性添加副标题
fig.text(0.45,0.9,'这是副标题')
#折线图
axes[0][0].plot(x,y)
#柱状图
axes[0][1].bar(x,y)
#直方图
axes[0][2].hist(y,bins=30)
#散点图
axes[1][0].scatter(x,y)
#条形图
axes[1][1].barh(x,y)
#饼图
axes[1][2].pie([1,2,3,4,5],labels=['A级','B级','C级','D级','E级'])
#axes[1,2].boxplot() 需要合适的数据,就不画了
#设置子图的xy轴范围,子图标题,标签背景颜色等,也可单独使用ax1.set_xlim()进行设置。部分属性不能直接使用set设置
ax1.set(xlim=[-10,12],ylim=[-6,4],title='This is TU1',xlabel='xlabel',ylabel='ylabel',facecolor='#ffeedd')

效果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸可落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值