Python matplotlib基本设置

一、matplotlib.rcParams

  • rcParams是matplotlib存放设置的字典,修改字典键值以改变matplotlib绘图相关设置。
  • matplotlib.rcParams的常用设置:
plt.rcParams['font.sans-serif']=['SimHei']  #中文支持
plt.rcParams['axes.unicode_minus']=False #显示负数

plt.rcParams['lines.linewidth']=10
plt.rcParams['lines.linestyle']='--'
plt.rcParams['lines.color']='green'

二、matplotlib-直方图、条形图、折线图、饼图、散点图、箱线图、极线图、阶梯图

1.直方图

给定数据和区间,就可以按区间进行统计-清楚数据分布关系    hist(x,y)

import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

height=[151,160,180,175,167,158,165,185,170,164,155,176,173,165,175,178,168,174,172]  #学生身高数据
bins=range(150,190,5)#区间(150-190),以5为步长
plt.hist(height,bins)
plt.title("学生身高直方图")
plt.show()

 

2.条形图

给定横纵坐标对应数据,就可将同类数据进行对比   bar(x,y)

import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

classes=['一班','二班','三班','四班']
score=[70,80,85,77]

plt.bar(classes,score)
plt.title("学生成绩条形图")
plt.show()

 3.折线图

给定时间区间和数据,折线图通常显示随时间而变化的连续数据,适合体现相等时间间隔数据变化趋势。   plot(x,y)

import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

year=range(2005,2019)
height=[157,160,162,164,167,170,173,175,176,179,182,182,182,182,182]

plt.plot(year,height)
plt.title("学生身高折线图")
plt.show()

4.饼图

显示一个数据系列各项大小与总和的占比关系  pie(data)

import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

labels=['出行','房贷','饮食','教育']
data=[2000,8000,3000,5000]

plt.pie(data,labels=labels,autopct='%1.1f%%')#转义%
plt.title("家庭支出饼图")
plt.show()

 

5.散点图

散点图是在回归分析中数据点在直角坐标系平面图上的分布图,表示因变量随自变量变化的大致趋势,因此可选择合适的函数进行拟合。  scatter(X,Y)

import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

data=[[15,10],[16,8],[17,7],[16.5,10],[20,16],[22,18],[25,15],[23,19],[30,8],[32,12],[35,15],[40,10],[38,12]]
X=[item[0] for item in data]
Y=[item[1] for item in data]

plt.scatter(X,Y)
plt.title("超市价格销量散点图")
plt.xlabel('价格(元)')
plt.ylabel('销量(件)')
plt.text(22,16,'牙膏')
plt.text(18,10,'纸巾')
plt.text(35,10,'洗衣液')
plt.show()

 6.箱线图

显示一组数据分散情况的统计图,用于显示原始数据分布的特征。  boxplot(data)

 

import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

data=[90,77,88,85,60,45,95,84,76,81,83,78,65]

plt.title("学生成绩箱线图")
plt.boxplot(data)
plt.show()

7.极线图

表示极坐标下的数据分布情况,多用于显示具有一定周期性的数据。极径和角度 projection='polarax.plot(theta,r)

import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

r=[1,2,3,4,5] #极径
theta=[0,1.5,3.6,4.8,6]#角度

ax=plt.subplot(111,projection='polar')
ax.plot(theta,r)
plt.title("极线图")

plt.show()

8.阶梯图

阶梯图是一种以无规律、间歇性阶跃的方式表达数值变化的方法,不仅可以像折线图表达数据变化的趋势,还可以反应数据持续的时间。时间和数据  step(x,y)

import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

year=range(2005,2020)
height=[157,160,162,164,167,170,173,175,176,179,182,182,182,182,182]


plt.step(year,height)
plt.title("学生身高阶梯图")
plt.show()

 

posted @ 2020-12-29 09:55  bellin124  阅读(273)  评论(0编辑  收藏  举报