matplotlib可视化学习
折线图
plt.plot(x,y,linestyle,linewidth,color,marker,markersize,markeredgecolor,markerfactcolor,label,alpha)
参数 | 说明 |
---|---|
x | 指定折线图的x轴数据; |
y | 指定折线图的y轴数据; |
linestyle | 指定折线的类型,可以是实线、虚线、点虚线、点点线等,默认文实线; |
linewidth | 指定折线的宽度 |
marker | 可以为折线图添加点,该参数是设置点的形状; |
markersize | 设置点的大小; |
markeredgecolor | 设置点的边框色; |
markerfactcolor | 设置点的填充色; |
label | 为折线图添加标签,类似于图例的作用; |
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1,2,3],[5,7,4])
plt.show()
# 在一个图中标记多条线,并且标记 title,x 和 y 的 label
x = [1,2,3]
y = [5,7,4]
x2 = [1,2,3]
y2 = [10,14,12]
plt.plot(x, y, label='First Line')
plt.plot(x2, y2, label='Second Line')
plt.xlabel('Plot Number')
plt.ylabel('Important var')
plt.title('Interesting Graph\nCheck it out')
plt.legend() # lengend 可以显示每条线的 label,就是图中的小框,可以注释掉看变化。
plt.show()
柱状图
# 柱状图
import matplotlib.pyplot as plt
plt.bar([1,3,5,7,9],[5,2,7,8,2], label="Example one")
plt.bar([2,4,6,8,10],[8,6,2,5,6], label="Example two", color='g')
plt.legend()
plt.xlabel('bar number')
plt.ylabel('bar height')
plt.title('Epic Graph\nAnother Line! Whoa')
plt.show()
直方图
plt.hist(x, bins=10, range=None, normed=False,weights=None, cumulative=False, bottom=None,histtype='bar', align='mid', orientation='vertical',rwidth=None, log=False, color=None,
label=None, stacked=False)
参数 | 说明 |
---|---|
x | 指定要绘制直方图的数据; |
bins | 指定直方图条形的个数; |
range | 指定直方图数据的上下界,默认包含绘图数据的最大值和最小值; |
normed | 是否将直方图的频数转换成频率; |
weights | 该参数可为每一个数据点设置权重; |
cumulative | 是否需要计算累计频数或频率; |
bottom | 可以为直方图的每个条形添加基准线,默认为0; |
histtype | 指定直方图的类型,默认为bar,除此还有’barstacked’, ‘step’, ‘stepfilled’; |
align | 设置条形边界值的对其方式,默认为mid,除此还有’left’和’right’; |
orientation | 设置直方图的摆放方向,默认为垂直方向; |
rwidth | 设置直方图条形宽度的百分比; |
log | 是否需要对绘图数据进行log变换; |
color | 设置直方图的填充色; |
label | 设置直方图的标签,可通过legend展示其图例; |
stacked | 当有多个数据时,是否需要将直方图呈堆叠摆放,默认水平摆放; |
import matplotlib.pyplot as plt
population_ages = [22,55,62,45,21,22,34,42,42,4,99,102,110,120,121,122,130,111,115,112,80,75,65,54,44,43,42,48]
bins = [0,10,20,30,40,50,60,70,80,90,100,110,120,130]
plt.hist(population_ages, bins, histtype='bar', rwidth=0.8, label="hist" )
plt.xlabel('x')
plt.ylabel('y')
plt.title('Interesting Graph\nCheck it out')
plt.legend()
plt.show()
散点图
import matplotlib.pyplot as plt
x = [1,2,3,4,5,6,7,8]
y = [5,2,4,2,1,4,5,2]
plt.scatter(x,y, label='skitscat', color='k', s=25, marker="o")
plt.xlabel('x')
plt.ylabel('y')
plt.title('Interesting Graph\nCheck it out')
plt.legend(loc = 'best')
plt.show()
叠加图
import matplotlib.pyplot as plt
days = [1,2,3,4,5]
sleeping = [7,8,6,11,7]
eating = [2,3,4,3,2]
working = [7,8,7,2,2]
playing = [8,5,7,8,13]
plt.plot([],[],color='m', label='Sleeping', linewidth=5)
plt.plot([],[],color='c', label='Eating', linewidth=5)
plt.plot([],[],color='r', label='Working', linewidth=5)
plt.plot([],[],color='k', label='Playing', linewidth=5)
plt.stackplot(days, sleeping,eating,working,playing, colors=['m','c','r','k'])
plt.xlabel('x')
plt.ylabel('y')
plt.title('Interesting Graph\nCheck it out')
plt.legend(loc = 'lower center')
plt.show()
饼状图
plt.pie(x, explode=None, labels=None, colors=None,
autopct=None, pctdistance=0.6, shadow=False,
labeldistance=1.1, startangle=None,
radius=None, counterclock=True, wedgeprops=None,
textprops=None, center=(0, 0), frame=False)
参数 | 说明 |
---|---|
x | 指定绘图的数据; |
explode | 指定饼图某些部分的突出显示,即呈现爆炸式; |
labels | 为饼图添加标签说明,类似于图例说明; |
colors | 指定饼图的填充色; |
autopct | 自动添加百分比显示,可以采用格式化的方法显示; |
pctdistance | 设置百分比标签与圆心的距离; |
shadow | 是否添加饼图的阴影效果; |
labeldistance | 设置各扇形标签(图例)与圆心的距离; |
startangle | 设置饼图的初始摆放角度; |
radius | 设置饼图的半径大小; |
counterclock | 是否让饼图按逆时针顺序呈现; |
wedgeprops | 设置饼图内外边界的属性,如边界线的粗细、颜色等; |
textprops | 设置饼图中文本的属性,如字体大小、颜色等; |
center | 指定饼图的中心点位置,默认为原点 |
frame | 是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置; |
import matplotlib.pyplot as plt
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.1,0,0), # 每个部分突出的部分
autopct='%1.1f%%') # 百分比的格式
plt.title('Interesting Graph\nCheck it out')
plt.show()