import matplotlib

这篇博客介绍了使用matplotlib库进行数据可视化的多种图表类型,包括散点图、折线图、条形图、直方图、饼状图和箱型图。散点图用于展示两个变量之间的相关性,折线图常用来描绘随时间变化的趋势,条形图则用于比较不同分类的数据大小。直方图展示了数据的分布情况,饼状图显示各项占比,而箱型图则用于揭示数据的四分位数和异常值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

散点图:用于描述两个变量的相关性-----scatter

折线图:多用于描述变量随时间的变化-----plot

条形图:比较多个项目分类的数据大小

直方图:表示数据的分布情况(连续)

饼状图:显示各项大小与总和的比例

箱型图:上边缘,上四分位数,中位数,下四分位数,下边缘,异常值



 

散点图:用于描述两个变量的相关性-----scatter

scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None,vmin=None, vmax=None,alpha=None, linewidths=None, verts=None,edgecolors=None, *, data=None, **kwargs)
import numpy as np
import matplotlib.pyplot as plt

#随机正相关
m=np.random.randn(1000)
n=m+np.random.randn(1000)*0.5
plt.scatter(m,n)
plt.show()

 

import numpy as np
import matplotlib.pyplot as plt

#随机不相关
x=np.random.randn(1000)
y=np.random.randn(1000)

plt.scatter(x,y)
plt.show()

界面定制:  

#s:点的面积
#c:颜色
#marker:标志形状
#alpha:透明度

plt.scatter(x,y,s=100,c='r',marker='X',alpha=0.5)

#marker的种类:https://matplotlib.org/api/markers_api.html?highlight=marker#module-matplotlib.markers
 

 

折线图:多用于描述变量随时间的变化-----plot

def plot_date(x, y, fmt='o', tz=None, xdate=True, ydate=False, *,data=None, **kwargs)

 

def plot(*args, scalex=True, scaley=True, data=None, **kwargs)

 

import numpy as np
import matplotlib.pyplot as plt

#折线图
#生成从-10~10平均等分的100个数
x=np.linspace(-10,10,100)
y=x**2
plt.plot(x,y)
plt.show()

文件中有日期的折线图:

1、converters={0:mdate.strpdate2num('%Y')}

2、plt.plot_date()

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdate

#北京房价折线图
date,beijing,tianjing,shijiazhuang=np.loadtxt('demo.csv',delimiter=',',converters={0:mdate.strpdate2num('%Y')},skiprows=1,usecols=(0,1,2,3),unpack=True,encoding='GBK')

'''
    skiprows:从第几行开始导入
    usecols:导入第几列
    unpack:False-从左往右形成一行,True-从上往下形成一行
    delimiter:csv中每个数据的分隔符
'''

plt.plot_date(date,beijing,linestyle='-',marker='o',color='red')
plt.plot_date(date,tianjing,linestyle='-',marker='o',color='blue')
plt.plot_date(date,shijiazhuang,linestyle='-',marker='o',color='black')

#linestyle:直线、虚线

plt.show()

 

 

import numpy as np
import matplotlib.pyplot as plt

#画出正弦函数的图像
x=np.linspace(-10,10,100)
y=np.sin(x)
plt.plot(x,y)
plt.show()

 

条形图:比较多个项目分类的数据大小

 

#def bar(x, height, width=0.8, bottom=None, *, align='center',data=None, **kwargs):

 

import numpy as np
import matplotlib.pyplot as plt
N=5
#并列
y=[22,55,33,42,60]
index=np.arange(N)
x=plt.bar(x=index,height=y,width=0.4,color='red')
plt.show()

 

import numpy as np
import matplotlib.pyplot as plt
N=5
#并列
y=[22,55,33,42,60]
index=np.arange(N)
x=plt.barh(y=index,width=y,color='red')
plt.show()

import numpy as np
import matplotlib.pyplot as plt
N=5
#并列
y1=[22,55,33,42,60]
y2=[21,20,45,10,54]
bar_width=0.3
index=np.arange(N)
plt.bar(x=index,height=y1,color='red',width=0.3)
plt.bar(x=index+bar_width,height=y2,color='blue',width=0.3)
plt.show()

 

 

import numpy as np
import matplotlib.pyplot as plt
N=5

#层叠-就是将下层图像置为上层的buttom
y1=[22,55,33,42,60]
y2=[21,20,45,10,54]
index=np.arange(N)
plt.bar(index,y1,0.2,color='red')
plt.bar(index,y1,0.2,y1,color='blue')
#不能写x=index,height=y1等
plt.show()

直方图:表示数据的分布情况(连续)

 

#直方图
import numpy as np
import matplotlib.pyplot as plt

mu=100 #mean of the distrubution
sigma=20 #standard deviation of distribution
x=np.random.randn(2000)

plt.hist(x,bins=10,color='red',density=False,edgecolor='k')

#bins:多少块
#density :是否标准化,标准化之后为频组
#edgecolor:颜色分割线

plt.show()

 

#双变量直方图

import numpy as np
import matplotlib.pyplot as plt

x=np.random.randn(2000)+2
y=np.random.randn(2000)+3

plt.hist2d(x,y,bins=50)

plt.show()

 

饼状图:显示各项大小与总和的比例

#饼状图

import numpy as np
import matplotlib.pyplot as plt

labels='A','B','C','D'
fraces=[15,30,25,10]

explode=[0,0,0,0.05]

plt.pie(x=fraces,labels=labels,autopct='%0.f%%',explode=explode,shadow=True)
#autopct:显示百分比
#explode:突出显示
#shadow:加阴影


plt.show()

 

 

箱型图:上边缘,上四分位数,中位数,下四分位数,下边缘,异常值

 

#箱型图

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(1)
data=np.random.normal(size=1000,loc=0,scale=1)

plt.boxplot(data,sym='x',whis=1.5)
#sym:符号
#whis:异常值的区域


plt.show()

#多箱型图
import numpy as np
import matplotlib.pyplot as plt

np.random.seed(1)
data=np.random.normal(size=(1000,4),loc=0,scale=1)
labels=['A','B','C','D']

plt.boxplot(data,sym='x',whis=1.5)

plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值