用Python画微信用户增长图
Dec 17, 2016读到《腾讯传》讲微信爆发式增长一段,于是根据书中数据和其他资料,画了个图:
基本结论就是2011年下半年是拐点,之后微信用户人数开始快速增长。
90%的时间都在整理数据。。。还要各种不一致,心好累。基本上用户人数是向下取整,比如说四百多万人,就用4000000。日期是向后取整,比如说11月用户人数达到多少,没有具体日期的话,就用11月最后一天。所以整体应该略低估。第一个数据点选在2010年11月20日,微信立项的日期,用户人数其实应该是0啦,写1是方便取对数,当然1也可以理解成张小龙。
以下代码:
import matplotlib.pyplot as plt
import pandas as pd
data = [('2010-11-20', 1),
('2011-01-21', 10000),
('2011-07-01', 4000000),
('2011-08-31', 15000000),
('2011-11-30', 45000000),
('2011-12-31', 50000000),
('2012-03-31', 100000000),
('2012-09-17', 200000000),
('2013-01-15', 300000000),
('2013-07-24', 400000000)]
dates, user_counts = zip(*data)
dates = pd.to_datetime(dates, format='%Y-%m-%d')
fig, ax = plt.subplots(figsize=(8, 5))
ax.plot(dates, user_counts, 'ko')
fig.autofmt_xdate()
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
deltadays = pd.to_timedelta(30, unit='D')
ax.set_xlim(dates[0] - deltadays, dates[-1] + deltadays)
ax.set_xticks(dates)
adjustment = 1e7
ax.set_ylim(user_counts[0] - adjustment, user_counts[-1] + adjustment)
ax.set_ylabel('Number of WeChat Users')
# plt.show()
plt.savefig('wechat_users.png')
数据来源: