首页 > 其他分享 >中文显示乱码、每行差值、等间距拆分列表等

中文显示乱码、每行差值、等间距拆分列表等

时间:2022-09-23 17:44:05浏览次数:48  
标签:每行 %% list 乱码 plt 差值 gain date stock

# %%
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#解决中文显示问题
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

# %%
df = pd.read_excel('沪深300成分股收盘价.xlsx')

# %%
stock = df.iloc[:, 1:]

# %%
stock

# %%
# 计算差价
stock = stock.diff()

# %%
stock

# %%
date = df.iloc[:, 0]

# %%
date

# %%
# 设置行索引
stock = stock.set_index(keys=date)

# %%
# 表转置
stock = stock.T

# %%
stock

# %%
stock = stock.iloc[:, 1:]

# %%
stock

# %%
stock_list = []
gain_list = []
for i in list(stock):
  var = stock.sort_values(by=i, ascending=False)  # 对每1列进行降序排序
  gain = list(var[i])
  gain_list.append(gain)
  var = list(var.index)  # 获取行索引
  stock_list.append(var)

# %%
# 每周涨幅的降序排名列表
stock_list

# %%
gain_list

# %%
# 将2维列表转换为1维列表
list1 = []
for i in gain_list:
  for j in i:
    list1.append(j)

# %%
list1

# %%
# 将1维列表按每60个为间隔拆分为2维列表
gain_list = [list1[i:i+60] for i in range(0,len(list1),60)]

# %%
gain_list

# %%
# 将2维列表第1层进行求和
list1 = []
for i in gain_list:
  list1.append(sum(i))

# %%
list1

# %%
# 将1维列表按每5个为间隔拆分为2维列表
gain_list = [list1[i:i+5] for i in range(0,len(list1),5)]

# %%
gain_list

# %%
print(len(gain_list))

# %%
# 每个组合每1周的涨幅
list1 = list(zip(*gain_list))   # 将2维列表对应的元素进行打包
gain_list = [list1[i:i+5] for i in range(0,len(list1),5)]  # 有误

# %%
gain_list

# %%
list1 = []
for i in gain_list:
  for j in i:
    for k in j:
      list1.append(k)
gain_list = [list1[i:i+369] for i in range(0,len(list1),369)]

# %%
gain_list

# %%
combination1_gain = gain_list[0]
combination2_gain = gain_list[1]
combination3_gain = gain_list[2]
combination4_gain = gain_list[3]
combination5_gain = gain_list[4]

# %%
plt.figure(figsize=(20, 10), dpi=100)
date = list(date)
date = date[1:]

# %%
date

# %%
plt.figure(figsize=(40, 40), dpi=100)   # 图像的大小
plt.plot(date, combination1_gain, c='red', label="组合1")
plt.plot(date, combination2_gain, c='green', label="组合2")
plt.plot(date, combination3_gain, c='blue', label="组合3")
plt.plot(date, combination4_gain, c='black', label="组合4")
plt.plot(date, combination5_gain, c='orange', label="组合5")
plt.scatter(date, combination1_gain, c='red')
plt.scatter(date, combination2_gain, c='green')
plt.scatter(date, combination3_gain, c='blue')
plt.scatter(date, combination4_gain, c='black')
plt.scatter(date, combination5_gain, c='orange')
plt.legend(loc='best')
plt.yticks(range(-2500, 2000, 100))   # y轴的范围
plt.grid(True, linestyle='--', alpha=0.5)
plt.xlabel("日期", fontdict={'size': 30})
plt.ylabel("上周涨跌幅", fontdict={'size': 30})
plt.title("五个组合每周持仓的对应因子值(上周涨跌幅)", fontdict={'size': 35})
plt.show()

标签:每行,%%,list,乱码,plt,差值,gain,date,stock
From: https://www.cnblogs.com/tiansz/p/16723571.html

相关文章

  • 解决SecureFX中文乱码的方法
    SecureFX出现乱码,解决办法在这里插入图片描述1.点击Options选项,选择GlobalOptions在这里插入图片描述2.点击打开GlobalOptions窗口之后,在左边的General选项下方找到Confi......
  • Tomcat乱码问题
    Tomcat乱码解决方法一更改conf/logging.properties中的UTF-8为GBK但是这种更改只会更改日志乱码,sout控制台输出依旧是乱码。方法二更改idea配置bin/idea.exe.vmopti......
  • C#处理读取使用US7ASCII的oracle数据库中文显示乱码问题
    方式一:(推荐)OracleDataAccessComponents(ODAC)+OleDbConnection该方式无需配置环境变量1、下载ODAC组件,地址为https://www.oracle.com/technetwork/topics/dotne......
  • word中公式乱码
    今天一打开word,公式全都乱码,又打开了别的word文件还是乱码,不经的心头一阵!!!具体情况如下:  解决方法:将 文件>选项>高级>显示域代码而非阈值取消勾选(在显示文档内容)......
  • Tomcat 在IDEA中运行Tomcat,控制台乱码问题的解决方案
    IDEA中运行Tomcat,控制台乱码问题的解决方案试了好多种网上的方案(只有这一种能解决)环境:jdk11idea2022.2.4tomcat9.0.54解决方案:1.打开tomcat的配置文件(apache......
  • jmeter响应信息中文乱码-解决方案
     1:线程组-添加-后置处理器-BeanshellPostProcessor2:添加内容:prev.setDataEncoding("utf-8")    ......
  • sqlserver substring 函数截取text格式文本格式乱码导致的定位错误的问题
    描述:使用charindex函数对text字段所要截取的内容下标读取例如:str(表字段名称-类型text)=<p>●123456</p>截取123,      index1=chaindex('1',str),inde......
  • 使用notepad++批量在每行首尾添加内容
    1简介在程序员开发过程中,一个不错的工具是notepad++,该工具为notepad的增强,增强了许多的功能,包括程序员喜欢的列块编辑模式,支持众多的插件,例如json格式化,支持markdown语法......
  • Debian 中文乱码 设置中文
    1.sudoapt-getinstalllocales2.sudodpkg-reconfigurelocales勾选zh_CN.UTF-83.sudolocale-gen4.sudoapt-getinstallttf-wqy-zenhei(安装字体)5.sudonan......
  • 请求参数中文乱码-解决方式
    POST:    调用setCharacterEncoding()这样就解决POST乱码问题 GET:  优化:   ......