python堆叠面积图_06. Matplotlib 2 |折线图| 柱状图| 堆叠图| 面积图| 填图| 饼图| 直方图| 散点图| 极坐标| 图箱型图...

本文详细介绍了如何使用Python的Matplotlib库绘制各种图表,包括线形图、柱状图、堆叠图、面积图等,并提供了丰富的代码示例,展示了如何设置图表样式、颜色、透明度、网格等属性,以及如何在图表中添加图例、网格和表格数据。

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

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值