文章目录
#导入相关数据库
import pandas as pd
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.charts import Line
from pyecharts import options
import matplotlib.pyplot as plt
from pywaffle import Waffle
from pyecharts.charts import TreeMap
# 导入tushare
import tushare as ts
# 初始化pro接口
pro = ts.pro_api('*****************************************')
# 拉取数据
df = pro.daily(**{
"ts_code": "",
"trade_date": 20220222,
"start_date": "",
"end_date": "",
"offset": "",
"limit": ""
}, fields=[
"ts_code",
"trade_date",
"open",
"high",
"low",
"close",
"pre_close",
"change",
"pct_chg",
"vol",
"amount"
])
2.1 股票跌幅前10位股票的条形图
#引入相关数据
A = pd.read_csv(r'各省参会人数.csv',encoding="gb18030")
B = pd.read_csv(r'NPC.csv')
C = pd.read_csv(r'genderratio.csv')
D = df.sort_values(by="change" , inplace=True, ascending=False)
v1 = df['change'].tolist()
v2 = df['ts_code'].tolist()
bar=(
Bar()
.add_xaxis(v2[-10:])
.add_yaxis('股票代码',v1[-10:])
.reversal_axis()
.set_series_opts(label_opts=opts.LabelOpts(position="right"))
.set_global_opts(title_opts=opts.TitleOpts(title="2020年2月22日跌幅最大的十支股票"))
)
bar.render_notebook()
2.2 各年龄层中男性和女性参会人数累计柱状图
bins=[1919,1930,1940,1950,1960,1970,1980,1990,2000]
labels=['20后','30后','40后','50后','60后','70后','80后','90后']
B['年龄段']=pd.cut(
B['Birth year'],
bins,
right=False,
labels=labels)
B1 = B.loc[B["性别"] == "男"]
B2 = B.loc[B["性别"] == "女"]
num1 = []
num2 = []
for i in labels:
num = len(B1.loc[B1["年龄段"]== i])
num1.append(num)
for i in labels:
num = len(B1.loc[B1["年龄段"]== i])
num2.append(num)
bar = (
Bar()
.add_xaxis(labels)
.add_yaxis('女',num2,stack='1',gap="0%")
.add_yaxis('男',num1,stack='1',gap="0%")
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title='全国人大代表年龄的分布',subtitle="平均年龄为53.77岁"),
xaxis_opts=opts.AxisOpts(name='年龄段'),
yaxis_opts=opts.AxisOpts(name='人数'))
)
bar.render_notebook()
2.3 近四届全国人大代表的性别比例折线图
v1 = C['n'].tolist()
v2 = C['female'].tolist()
v3 = C['male'].tolist()
line = Line()
line.add_xaxis(v1)
line.add_yaxis('female',v2)
line.add_yaxis('male',v3)
line.set_global_opts(title_opts=options.TitleOpts(title='近四届全国人大代表的性别比例'))
line.render_notebook()
2.4 华夫饼图
labels1=['本科','博士研究生','大专','高中及以下','硕士研究生','未知']
labels2=['法学','工学','管理学','经济学','教育学','军事','理学','历史','农学','未知','文学','医学','艺术','哲学']
num1 = []
num2 = []
for i in labels1:
num = len(B.loc[B["学历"]== i])
num1.append(num)
for i in labels2:
num = len(B.loc[B["人文社科拆后专业"]== i])
num2.append(num)
data = dict(zip(labels1, num1))
plt.rcParams['font.sans-serif']=['Simhei']
total = sum(data.values())
plt.figure(
FigureClass=Waffle,
rows=5,
columns=10,
values=data,
# 设置图例的位置
legend={'loc': 'upper left', 'bbox_to_anchor': (1, 1)},
labels = ['{} {:.1f}%'.format(k, (v/total*100)) for k, v in data.items()],
dpi=100
)
plt.show()
2.5 矩形树图
values = [[253,449,256,24,33,0,65,30,26],[296,131,81,104],[1198]] # 二层节点数值
names = [['法学','管理学','经济学','教育学','军事','历史','文学','艺术','哲学'],['工学','理学','农学','医学'],['未知']] # 第二层节点名称
childs = [
[{'name':name[i], 'value':value[j]} for i,j in zip(range(len(name)),range(len(value)))]
for name,value in zip(names, values)
]
data = [{'name':i, 'value':j, 'children': m} for i,j,m in zip(['Fruits','Vegetables','Others'],[54,77,36],childs)]
treemap = TreeMap(init_opts=opts.InitOpts(height='450px',width='850px'))
treemap.add(series_name='各专业参会人数',data=data,leaf_depth=2,
)
treemap.set_global_opts(title_opts=opts.TitleOpts(title='各专业参会人数'))
treemap.render_notebook()
本人是一个金融本科生在读,也是第一次写文章,哈哈,也只是把作业的内容整理了一下,分享了出来。学习编程有一段时间了,起初是因为课程需要,后来觉得这些东西确实蛮有意思的,就自己学了起来,后续会接着分享自己的学习体会,也期望和大家交流,一起进步。
文章中所有代码,来源于网络加上自己的删删改改,如果有侵权的话,非常抱歉,请联系我。