【每天几分钟,从零入门python编程的世界!】
今天我们学习堆栈图(stackplot)的绘制。堆就是堆积,栈就是什么都有,相当于在一个工具架子上,有很多很多工具。所以时下流行的全站工程师,就是相当于所有开发技能都会的工程师。
stackplot相当于“堆起来的图”。
假如你现在要做一个市场调研,有ABCD四家公司,这四家公司在这个行业各占一定的市场份额,它们的份额随着时间会动态的变化,他们所在的行业的市场份额也会动态变化,如果这个行业是新兴的行业,整个行业的市场份额就会增加,如果这个行业是夕阳行业,行业的市场份额可能会减少,也有的行业市场份额会保持基本不变。
我们假设ABCD四家公司各自的1-12月份的销售额如下:
A=[1,2,3,4,5,6,7,8,9,10,11,12]
B=[10,20,30,40,50,60,70,80,90,100,110,120]
C=[220,210,200,190,180,170,160,150,140,130,120,110,100]
D=[80,90,86,88,82,84,90,87,83,81,85,88]
我们根据销售额数据,来绘制堆栈图,代码如下:
运行结果如下:
根据这个堆栈图,我们发现,我们不知道这四种颜色的区域,哪个是A,哪个是B,哪个是C,哪个是D。
根据之前的学习,画折线图时,我们可以在plt.plot(x,y,label="xxx")这句代码的label中给这条折线命名,但是在堆栈图中,我们在plt.stackplot中添加label也只能给这整个堆栈图贴标签,而不能给代表ABCD四个公司的四个颜色区域贴标签。这是因为ABCD四组数据共同形成了一个堆栈图,而不是这四组数据形成了4个堆栈图。
想要能给四个颜色区域贴标签,我们需要引入numpy,但是我们还没有学numpy,那么我们不使用numpy怎么做呢?
我们可以先画4条折线图,只不过画这四条折线图时,不引入数据,折线图就不会显示出来,但是折线图这时是存在的。我们可以在画折线图时给定每一条折线图的颜色,然后把每一条折线图的颜色跟堆栈图的颜色区域一一对应起来,每一条折线图都有label,通过legend标识出来,因为每一条折线的颜色和堆栈图中的颜色一一对应,所以折线图的的名字也跟堆栈图的四个颜色区域一一对应。
我们可以这样画折线图:
plt.plot([],[],color="m