怎么在堆叠柱状图中体现百分⽐_Python数据可视化(中)
——matplotlib中的诸常。。。
本⽂主要内容来⾃于天池课堂,本⽂在进⾏整理的同时在此注明原作者和原⽂链接,有兴趣的朋友可移步观看。
折线图与⾯积图
折线图
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)
series的index为横坐标
value为纵坐标
kind → line,(折线图,柱状图,柱状图-横...)
label → 图例标签,Dataframe格式以列名为label
style → 风格字符串,这⾥包括了linestyle(-),marker(.),color(g)
color → 颜⾊,有color指定时候,以color颜⾊为准
alpha → 透明度,0-1
use_index → 将索引⽤为刻度标签,默认为True
rot → 旋转刻度标签,0-360
grid → 显⽰⽹格,⼀般直接⽤id
xlim,ylim → x,y轴界限
xticks,yticks → x,y轴刻度值
figsize → 图像⼤⼩
title → 图名
legend → 是否显⽰图例,⼀般直接⽤plt.legend()
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000)) # pandas 时间序列ts = ts.cumsum()ts.plot(kind='line', label = "what",
# subplots →是否将各个列绘制到不同图表,默认Falsedf = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD')).cumsum()df.plot(kind
⾯积图
⾯积图与线图⾮常相似。它们也被称为堆栈图。这些图可⽤于跟踪构成⼀个整体类别的两个或多个相关组的随时间变化。
stacked:是否堆叠,默认情况下,区域图被堆叠
为了产⽣堆积⾯积图,每列必须是正值或全部负值!
当数据有NaN时候,⾃动填充0,图标签需要清洗掉缺失值
fig,axes = plt.subplots(2,1,figsize = (8,6))df1 = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])df2 = pd.DataFrame(np.random.randn(10, 4
填图
fig,axes = plt.subplots(2,1,figsize = (8,6))x = np.linspace(0, 1, 500)y1 = np.sin(4 * np.pi * x) * np.exp(-5 * x)y2 = -np.sin(4 * np.pi * x) * np.exp(-5 * x)axes[0].
条形图
条形图使⽤条形来⽐较不同类别之间的数据。当您想要测量⼀段时间内的变化时,它⾮常适合。它可以⽔平或垂直表⽰。此外,要记住的重
要⼀点是,条形越长,价值就越⼤。
plt.plot(kind='bar/barh')plt.bar/barh()
x,y参数:x,y值
width:宽度⽐例
facecolor柱状图⾥填充的颜⾊、edgecolor是边框的颜⾊
left-每个柱x轴左边界,bottom-每个柱y轴下边界 → bottom扩展即可化为⽢特图 Gantt Chart
align:决定整个bar图分布,默认left表⽰默认从左边界开始绘制,center会将图绘制在中间位置
xerr/yerr :x/y⽅向空出⼀部分
# 创建⼀个新的figure,并返回⼀个subplot对象的numpy数组fig,axes = plt.subplots(4,1,figsize = (10,10))s = pd.Series(np.random.randint(0,10,16),index = list('abcd
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 = 'w
直⽅图
直⽅图⽤于显⽰分布,⽽条形图⽤于⽐较不同的实体。当您有阵列或很长的列表时,直⽅图很有⽤。让我们考虑⼀个例⼦,我需要使⽤箱⼦绘制不同年龄阶段的⼈⼝数。现在,箱⼦指的是被分成⼀系列间隔的值范围。箱⼦通常是相同尺⼨的。plt.hist(x, bins=10, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical',rwidth=None, log=False, color=None, label=None, stacked=False, hold=None, d
ata=None, **kwargs)
bin:箱⼦的宽度
density 标准化
histtype 风格,bar,barstacked,step,stepfilled
orientation ⽔平还是垂直{‘horizontal’, ‘vertical’}
align : {‘left’, ‘mid’, ‘right’}, optional(对齐⽅式)
stacked:是否堆叠
# 直⽅图s = pd.Series(np.random.randn(1000))s.hist(bins = 20, histtype = 'bar', align = 'mid', orientation = 'vertical', alpha=0.5, density =True)#
random python# 堆叠直⽅图plt.figure(num=1)df = pd.DataFrame({'a': np.random.randn(1000) + 1, 'b': np.random.randn(1000), 'c': np.random.randn(1000) - 1, 'd': n
array([[,],
[,]],
dtype=object)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论