一、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='polar' ax.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()