1.基本图表绘制 plt.plot()
图表类别:线形图、柱状图、密度图,以横纵坐标两个维度为主
同时可延展出多种其他图表样式
plt.plot(kind='line', ax=None, figsize=None, use_index=True, title=None, grid=None, legend=False,
style=None, logx=False, logy=False, loglog=False, xticks=None, yticks=None, xlim=None, ylim=None,
rot=None, fontsize=None, colormap=None, table=False, yerr=None, xerr=None, label=None, secondary_y=False, **kwds)
ts.plot() 由Series直接生成图表
importnumpy as npimportpandas as pdimportmatplotlib.pyplot as plt%matplotlib inline#Series直接生成图表
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts=ts.cumsum()
ts.plot(kind='line',
label= 'hello',
style= '--g.',
color= 'red',
alpha= 0.4,
use_index=True,
rot= 45,
grid=True,
ylim= [-50,50],
yticks= list(range(-50,50,10)),
figsize= (8,4),
title= 'test',
legend=True)#plt.grid(True, linestyle = "--",color = "gray", linewidth = "0.5",axis = 'x') # 网格
plt.legend()#Series.plot():series的index为横坐标,value为纵坐标#kind → line,bar,barh...(折线图,柱状图,柱状图-横...)#label → 图例标签,Dataframe格式以列名为label#style → 风格字符串,这里包括了linestyle(-),marker(.),color(g)#color → 颜色,有color指定时候,以color颜色为准#alpha → 透明度,0-1#use_index → 将索引用为刻度标签,默认为True#rot → 旋转刻度标签,0-360#grid → 显示网格,一般直接用plt.grid#xlim,ylim → x,y轴界限#xticks,yticks → x,y轴刻度值#figsize → 图像大小#title → 图名#legend → 是否显示图例,一般直接用plt.legend()#也可以 → plt.plot()
Dataframe直接生成图表 df.plot( )
df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD'))
df=df.cumsum()
df.plot(kind='line',
style= '--.',
alpha= 0.4,
use_index=True,
rot= 45,
grid=True,
figsize= (8,4),
title= 'test',
legend=True,
subplots=False,#False是将这4条线绘制到一个图里边。
colormap= 'Greens')#subplots → 是否将各个列绘制到不同图表,默认False#也可以 → plt.plot(df)
2.柱状图、堆叠图、面积图、填图
plt.plot(kind='bar/barh') , plt.bar()
柱状图、堆叠图
s.plot(kind='bar',color = 'k',grid = True,alpha = 0.5,ax = axes[0])单系列柱状图、df.plot(kind='bar',ax = axes[1],grid = True,colormap='Reds_r')# 多系列柱状图 、df.plot(kind='bar',ax = axes[2],grid = True,colormap='Blues_r',stacked=True) #多系列堆叠图df.plot.barh(ax = axes[3],grid = True,stacked=True,colormap = 'BuGn_r')
fig, axes = plt.subplots(4, 1, figsize = (10, 10)) #4个没有数据的图表
s = pd.Series(np.random.randint(0,10,16),index = list('abcdefghijklmnop'))
df= pd.DataFrame(np.random.rand(10,3), columns=['a','b','c'])
s.plot(kind='bar',color = 'k',grid = True,alpha = 0.5,ax = axes[0]) #ax参数 → 选择第几个子图 # 单系列柱状图方法一:plt.plot(kind='bar/barh')
df= pd.DataFrame(np.random.rand(10,3), columns=['a','b','c'])
df.plot(kind='bar',ax = axes[1],grid = True,colormap='Reds_r')#多系列柱状图
df.plot(kind='bar',ax = axes[2],grid = True,colormap='Blues_r',stacked=True) #多系列堆叠图 # stacked → 堆叠
df.plot.barh(ax= axes[3],grid = True,stacked=True,colormap = 'BuGn_r') #新版本plt.plot.
柱状图 plt.bar() --第二种绘制方法
plt.bar(x, y1, width=1, facecolor='yellowgreen', edgecolor='white', yerr=y1*0.1)
for i,j in zip(x, y1):
plt.text(i+0.3, j-0.15, '%.2f' % j, color = 'white')
plt.figure(figsize=(10,4))
x= np.arange(10)
y1= np.random.rand(10)
y2= -np.random.rand(10)
plt.bar(x, y1, width=1, facecolor='yellowgreen', edgecolor='white', yerr=y1*0.1)
plt.bar(x,y2,width= 1,facecolor = 'lightskyblue',edgecolor = 'white',yerr = y2*0.1)#x,y参数:x,y值#width:宽度比例#facecolor柱状图里填充的颜色、edgecolor是边框的颜色#left-每个柱x轴左边界,bottom-每个柱y轴下边界 → bottom扩展即可化为甘特图 Gantt Chart#align:决定整个bar图分布,默认left表示默认从左边界开始绘制,center会将图绘制在中间位置#xerr/yerr :x/y方向error bar;误差线
for i,j inzip(x, y1):
plt.text(i+0.3, j-0.15, '%.2f' % j, color = 'white')for i, j inzip(x, y2):
plt.text(i+0.3,j+0.05,'%.2f' % -j, color = 'white')#给图添加text#zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,将i,j打包成元组,然后返回由这些元组组成的列表。
print(list(zip(x,y1)))
---->>>>[(0,0.47736539792043764), (1, 0.82954841542507074), (2, 0.20566514192862784), (3, 0.27679883800197358), (4, 0.45433494683444564),
(5, 0.89112910457025774)