import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv('data.csv')
print(df)
# # 绘制柱状图
# plt.bar(df.Year, df.value)
# plt.show()
# # 新建画布
# fig, ax = plt.subplots(1, figsize=(12, 8))
#
# # 年份数
# n = len(df)
# # 颜色设置
# colors = ['black'] + ((n-1)*['lightgrey'])
# plt.bar(df.Year, df.value, color=colors)
# plt.scatter(df.Year, df.value, color=colors)
# plt.show()
# # 新建画布
# fig, ax = plt.subplots(1, figsize=(12, 8))
#
# # 年份数
# n = len(df)
# # 颜色设置
# colors = ['black'] + ((n-1)*['lightgrey'])
# # width: 条形图宽度 s: 散点图圆圈大小
# plt.bar(df.Year, df.value, color=colors, width=0.2)
# plt.scatter(df.Year, df.value, color=colors, s=10)
# plt.show()
# # 新建画布
# fig, ax = plt.subplots(1, figsize=(12, 8))
#
# # 年份数
# n = len(df)
# # 颜色设置
# colors = ['black'] + ((n-1)*['lightgrey'])
# # 使用线条
# for idx, val in df.iterrows():
# plt.plot([val.Year, val.Year],
# [-20, val.value],
# color=colors[idx])
# plt.show()
# # 新建画布
# fig, ax = plt.subplots(1, figsize=(12, 8))
#
# # 年份数
# n = len(df)
# # 颜色设置
# colors = ['black'] + ((n-1)*['lightgrey'])
# # 使用线条, markersize设置标记点大小
# for idx, val in df.iterrows():
# plt.plot([val.Year, val.Year],
# [-20, val.value],
# color=colors[idx],
# marker='o',
# markersize=3)
#
# # 设置y轴最低值
# plt.ylim(0,)
# plt.show()
# # 新建画布
# fig, ax = plt.subplots(1, figsize=(12, 8))
# color = 'b'
#
# # 年份数
# n = len(df)
# # 颜色设置
# colors = ['black'] + ((n-1)*['lightgrey'])
# # 使用线条
# for idx, val in df.iterrows():
# plt.plot([val.Year, val.Year],
# [-20, val.value],
# color='black',
# marker='o',
# lw=4,
# markersize=6)
# plt.plot([val.Year, val.Year],
# [-20, val.value],
# color=colors[idx],
# marker='o',
# markersize=4)
#
# # 移除上边框、右边框
# ax.spines['right'].set_visible(False)
# ax.spines['top'].set_visible(False)
#
# # 设置x、y轴范围
# plt.xlim(1948, 2020)
# plt.ylim(0,)
#
# # 中文显示
# plt.rcParams['font.sans-serif'] = ['Songti SC']
#
# plt.title('中国历年出生人口数据(万)', loc='left', fontsize=16)
# plt.text(2019, -220, '来源:国家统计局', ha='right')
#
# # 2019年出生人口数(显示)
# value_2019 = df[df['Year'] == 2019].value.values[0]
# plt.text(2019, value_2019+80, value_2019, ha='center')
#
# # 保存图片
# plt.savefig('chart.png')
# 新建画布
fig, ax = plt.subplots(1, figsize=(16, 8))
# 年份数
n = len(df)
# 颜色设置
color = 'b'
colors = ['#E74C3C'] + ((len(df)-1)*['#F5B7B1'])
# 使用线条
for idx, val in df.iterrows():
plt.plot([val.Year, val.Year],
[-20, val.value],
color=colors[idx],
marker='o',
lw=4,
markersize=6,
markerfacecolor='#E74C3C')
# 移除上边框、右边框
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
# 设置x、y轴范围
plt.xlim(1948, 2020)
plt.ylim(0,)
# 中文显示
plt.rcParams['font.sans-serif'] = ['Songti SC']
plt.title('中国历年出生人口数据(万)', loc='left', fontsize=16)
plt.text(2019, -220, '来源:国家统计局', ha='right')
# 2019年出生人口数(显示)
value_2019 = df[df['Year'] == 2019].value.values[0]
plt.text(2019, value_2019+80, value_2019, ha='center')
# 保存图片
plt.savefig('chart.png')