python3.5 matplotlib_python 数据可视化 matplotlib

本文介绍了如何在Python3.5中利用matplotlib库进行数据可视化,包括直接生成图表、配置图表参数、线的样式设计、条形图、直方图、箱型图、散点图、堆积图、饼图的绘制以及多图和复杂图表的创建。还提到了matplotlib的样式设置和面向对象的绘图方法。
摘要由CSDN通过智能技术生成

开始之前需要导入三个包

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

生成图表的方式

1直接生成

plt.plot(np,random.rand(100))

plt.show()

2 使用魔法函数可以直接出图,十分方便

%matplotlib inline

plt.plot(np.random.rand(10))

常用的参数配置

data=np.random.rand(25)

data1=np.random.rand(20)

plt.plot(data,labels='data')

plt.xlable('hahah') #添加行标签

plt.ylable('wiuichen') #添加列标签

plt.title('jjjjjj',y=1.05,fontsize=20) #添加标题,确定标题距离图表的距离,和大小

plt.plot(data1,labels='data1')

plt.legend(loc=0) #添加图例,loc=0是系统自己决定一个最佳位置,

可选择。效果是这样的

线的样式设计

data2=np.random.rand(25)

plt.plot(data,color='r',linestyle='--',marker='o')

plt.plot(data1,color='b',linestyle='-.',marker='^')

plt.plot(data2,color='y',lw=1,marker='o')

plt.grid()

#显示网格,color确定线的位置,linestyle确定线的风格,marker确定折点的形状,lw确定线的宽度。效果图

常见的图表1条形图

x=[1,5,6,8,8]

y=[5,8,5,3,7]

plt.bar(x,y,color='r')效果图

x=[1,5,6,8,8]

y=[5,8,5,3,7]

plt.barh(x,y,color='b')效果图

y1=[1,3,5,7,9]

plt.bar(x,y)

plt.bar(x,y1,bottom=y,color='r')柱状堆叠图2直方图

data3=np.random.randn(1000)

plt.hist(data3,color='g',bins=12) #bins控制直方图中直方的数量

plt.figure(figsize=(10,9)) #控制画布大小

x=np.random.randint(1,100,100)

x

bins=[0,10,20,30,40,50,60,70,80,90,100] #控制行标签的跨度。

plt.hist(x,bins)

plt.grid()3箱型图和散点图

data=np.random.rand(1000)

plt.boxplot(data)

plt.grid()

plt.figure(figsize=(10,6))

x=np.random.rand(1000)

y=np.random.rand(1000)

x1=np.random.randn(1000)

y1=np.random.randn(1000)

plt.scatter(x1,y1)

plt.grid()4堆积图

comp=[1,2,3,4]

y1=[55,66,77,88]

y2=[48,58,64,76]

y3=[30,36,39,49]

y4=[69,87,96,120]

labels=['小米','华为','vivo','oppo']

plt.stackplot(comp,y1,y2,y3,y4,labels=labels)

plt.legend()

plt.xticks([1,2,3,4],['one','two','three','fouer'])

plt.grid()5饼图绘制

plt.figure(figsize=(8,8))

size=[15,30,45,100]

labels=['小米','华为','vivo','oppo']

plt.pie(size,labels=labels,autopct='%1.1f%%',explode=(0.0,0.0,0.0,0.1),startangle=90,shadow=True)

plt.grid()

#autopct='%1.1f%%'是为了显示饼图中的数字,explode是为了控制哪个图分离,startangle是为了饼图的显示

shadow是显示阴影。

多图绘制

plt.figure(figsize=(8,8))

x=[1,2,3,4]

y=[2,4,3,7]

y1=[5,8,3,6]

plt.subplot(2,2,1)

plt.plot(x,y)

plt.subplot(2,2,2)

plt.bar(x,y1)

plt.subplot(2,1,2)

plt.pie(y1)样式

matplotlib中有很多现成的样式,不需要我们调节

查看方式是:

plt.style.available

可以看到样式有很多,连r语言绘图工具ggplot都具备,这很强大,对于我这样懒人来说就是很好的福利了,具体怎么使用呢

plt.style.use('ggplot')

#plt.pie(y1)

plt.plot(x,y)

plt.text(2,4,'top')

plt.annotate('last top',(3.5,5),(3,6),arrowprops=dict(facecolor='grey'))

#plt.text是插入注解,plt.annotate不仅可以插入注解,还可以插入箭头等。面向对象绘图

fig,ax=plt.subplots(2,2,figsize=(10,10))#生成一个2行2列的空画布

ax[0][0].plot(x)

ax[0][1].hist(x)

ax[1][0].pie(np.abs(x[:5]))效果图

第二种办法

fig=plt.figure(figsize=(10,10))

ax1=fig.add_subplot(2,2,1)

ax2=fig.add_subplot(2,2,2)

ax3=fig.add_subplot(2,1,2)

ax1.plot(x)

ax2.plot(np.abs(x[:4]))

ax1.axhline(-20,color='r',lw=0.51)#插入直线这是使用fivethirtyeight风格画的图

面向对象绘图时添加标签

fig,ax=plt.subplots()

ax.hist(x)

ax.set_xlabel('wuyuchen')

ax.set_ylabel('wwwwwww')

ax.set_title('tianli ',fontsize=18)

ax.set_xticks([0,5,10])

ax.set_xticklabels(['low','med','high'])共享x轴

x=[1,2,3,4]

y=[4,5,8,9]

y1=[3,6,2,5]

fig,ax=plt.subplots(2,1,sharex=True)

ax[0].bar(x,y)

ax[0].bar(x,y1,bottom=y1)

ax[1].plot(x,y)

十分感谢 @日月光华 老师。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值