tushare获取基本面相关数据可视化

2024-04-21 19:38

本文主要是介绍tushare获取基本面相关数据可视化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

用Tushare(地址:https://tushare.pro/register?reg=479106)调取基本面数据并可视化的过程记录。

比如要分析对比宁德时代(股票代码300750.SZ)和高轩国科的ROE(股票代码002074.SZ),思路就是调取两家公司的ROE数据,然后将年份作为X,两个公司的ROE值作为Y1Y2呈现在一张图中。

1.调取ROE数据

在tushare的搜索引擎处输入roe就可以找到数据的接口,其他数据同理。

https://tushare.pro/register?reg=479106https://tushare.pro/register?reg=479106

 

搜索发现 ROE的数据属于财务指标数据,结合官网的接口用法示例

import tushare as ts
import matplotlib.pyplot as plt
pro = ts.pro_api()df = pro.query('fina_indicator', ts_code='300750.SZ', start_date='20150101', fields='end_date,roa,roe')
df2 = pro.query('fina_indicator', ts_code='002074.SZ', start_date='20150101', fields='end_date,roa,roe')

其中fina_indicator对应数据的接口。roe在field参数里面。(因为是做基本面分析,所以把roa也加进来了)

输出df['end_date'],发现它是按照季度从后往前排列的,所以相应时间的ROE数据应该也是按照季度从后往前排列,可视化的时候注意要把时间从前往后排列。

搞清楚ROE数据相对应的时间后就可以啦!然后就把数据喂进列表里面。如果按照年度分析,就只要‘end_date’中带有‘1231’的数据(表示年末)。前文提到时间顺序的问题,所有最后要把列表里的数据reverse

x = []
Roa = []
Roe = []
Roe2 = []
for i in range(len(df)):if '1231' in df['end_date'][i]:x.append(df['end_date'][i])Roa.append(df['roa'][i])Roe.append(df['roe'][i])Roe2.append(df2['roe'][i])
x.reverse()
Roa.reverse()
Roe.reverse()
Roe2.reverse()

 结果如下:

 2.数据可视化

plt.rcParams["font.family"] = 'SimHei'
fig, ax1 = plt.subplots(figsize = (10, 5), facecolor='white')
ax1.plot(x,Roa,marker='o',color='darkred',label='ROA(%)')
plt.legend()
ax1.plot(x,Roe,marker='v',color='gold',label='ROE(%)')
ax1.plot(x,Roe2,marker='v',color='green',label='国轩高科ROE(%)')
ax1.set_ylabel('盈利能力',fontsize=12)
ax1.legend(loc=2,fontsize=12)for time, y in zip(x,Roa):ax1.text(time, y, '%.4f'%y, ha='center', va='bottom', fontsize=10.5)
for time, y in zip(x,Roe):ax1.text(time, y, '%.4f'%y, ha='center', va='bottom', fontsize=10.5)
plt.grid(axis="y",linestyle='-.')
plt.show()

主要的函数:

plt.subplots(figsize = (10, 5), facecolor='white')#构建画布
ax1.plot(x,Roa,marker='o',color='darkred',label='ROA(%)')#输入参数x,y
ax1.set_ylabel('盈利能力',fontsize=12)#给图片取个标题
ax1.text(time, y, '%.4f'%y, ha='center', va='bottom', fontsize=10.5)#在图上显示具体的数据大小

具体参数的细节可以翻阅matplotlib.pyplot手册

结果:

分析:上图展现了宁德时代的总资产收益率、净资产收益率。指标从2015年降到2020年,虽然2021年有小幅度上升,但总体趋于平稳。主要是由于销售净利率和总资产周转率在不断降低造成的。对于高速增长的企业不能简单通过ROE高低来判断其优劣。公司电池单价的下降幅度超过了成本的下降幅度,这背后有行业发展规律原因,也有宁德时代通过主动降低毛利率来获得市场规模和高速增长的战略考量。即使在这种情况下也可以从图中看出相比行业其他公司(如国轩高科),宁德时代的ROE水平仍然保持在一个相对较高的水平上。

同理还可以得到其他的基本面数据如下所示:

 

 

 

这篇关于tushare获取基本面相关数据可视化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/923882

相关文章

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Spring Boot中获取IOC容器的多种方式

《SpringBoot中获取IOC容器的多种方式》本文主要介绍了SpringBoot中获取IOC容器的多种方式,包括直接注入、实现ApplicationContextAware接口、通过Spring... 目录1. 直接注入ApplicationContext2. 实现ApplicationContextA

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

JAVA实现亿级千万级数据顺序导出的示例代码

《JAVA实现亿级千万级数据顺序导出的示例代码》本文主要介绍了JAVA实现亿级千万级数据顺序导出的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 前提:主要考虑控制内存占用空间,避免出现同时导出,导致主程序OOM问题。实现思路:A.启用线程池