import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import pymysql
import warnings
import random warnings.filterwarnings("ignore") def read_db(path):
close = pd.read_csv(path)
info = close[:-6]
zhi_list = []
for x in info['qx_zu'][20:]:
x_index = info[info['qx_zu'] == x].index
all_shuju = info[x_index[0] - 20:x_index[0] - 1]
zhi = np.mean(all_shuju['qx_zu']) - 2 * (np.std(all_shuju['qx_zu']))
info[21:]['cha'] = zhi
zhi_list.append(zhi)
info['cha'] = 0
info['cha'][20:] = np.array(zhi_list) info['jieguo'] = info['qx_zu'] < info['cha']
info['jieguo'][:20] = 0
x_true_index = info[info['jieguo'] == True].index
x_false_index = info[info['jieguo'] == False].index
x_small = info.loc[x_true_index]
x_small['jieguo'] = x_small['close']
# x_small['jieguo'] = 1
x_big = info.loc[x_false_index]
x_big['jieguo'] = 0
info_all = x_big.append(x_small)
info_all = info_all.sort_index()
# print(list(info_all['jieguo']))
# info_all.to_csv('info_all.csv')
info_all['date'] = pd.to_datetime(info_all['date'], format='%Y/%m/%d')
print(info_all['date'])
return info_all def show_info(info):
"""
画图展示
:param info:
:return:
""" plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置全局显示汉子
plt.tick_params(axis='x', labelsize=10) # 设置x轴标签大小
plt.plot(info['date'], info['close'], 'black')
plt.legend(loc=4) plt.xlabel('时间') # 设置x轴标题 plt.ylabel('沪深300收盘价', color='black') # 设置Y1轴标题
# plt.xticks(rotation=110) # 设置时间标签显示格式
plt.twinx() # 添加一条Y轴,
plt.axis('off') #不显示刻度
plt.ylabel('预警信号', color='r') # 设置Y2轴标题 plt.bar(info['date'], info['jieguo'], label='预警信号', color='r') plt.legend(loc='upper right') # 右上
# 保存图片
# plt.savefig('image/{}.png'.format('沪深300收盘价'))
plt.show() if __name__ == '__main__':
show_info(info=read_db('h300_close.csv'))

matplotlib双y周实例e的更多相关文章

  1. 【Python】matplotlib 双y轴绘制及合并图例

    1.双y轴绘制 关键函数:twinx() 问题在于此时图例会有两个. # -*- coding: utf-8 -*- import numpy as np import matplotlib.pypl ...

  2. matplotlib 双y轴绘制及合并图例

    关键函数:twinx() refer to: https://www.cnblogs.com/Atanisi/p/8530693.html

  3. Python实现双X轴双Y轴绘图

    诈尸人口回归.这一年忙着灌水忙到头都掉了,最近在女朋友的提醒下终于想起来博客的账号密码,正好今天灌水的时候需要画一个双X轴双Y轴的图,研究了两小时终于用Py实现了.找资料的过程中没有发现有系统的文章, ...

  4. Python教程:matplotlib 绘制双Y轴曲线图

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:数据皮皮侠 双X轴的可以理解为共享y轴 ax1=ax.twiny() ...

  5. Python科学计算技巧积累四——双y轴图像绘制

    双y轴图像具有单y轴图像没有的对比效果,在MATLAB中有plotyy函数可以实现,Python的实现方式没有MATLAB那样方便,不过实现效果却也不见得差. 以往我常用的绘图命令是import ma ...

  6. Matlab plotyy画双纵坐标图实例

    Matlab plotyy画双纵坐标图实例 x = 0:0.01:20;y1 = 200*exp(-0.05*x).*sin(x);y2 = 0.8*exp(-0.5*x).*sin(10*x);[A ...

  7. highchart 设置双Y轴坐标 双x轴坐标方法

    我们的图表一旦引入了两种不同单位或者数量级相差很大的数据以后,这时候需要两种坐标对其进行计量. 下面以设置双Y轴为例, y轴坐标的参数设置成: yAxis: [{ title: { text: '坐标 ...

  8. 绘制复数图形和双y轴图形

    clearclct=0:0.1:2*pi;x=sin(t);y=cos(t);z=x+i*y;subplot(1,3,1)plot(t,z,'r') %注:这种方式下,不论参数t,z哪个是复数,都将忽 ...

  9. Jqplot使用总结之二(双Y轴)

    最近需要用Jqplot做双Y轴的Chart图,首先我找到了文档上的例子并对数据做了一些调整: 1.例子展示: var s1 = [["2002-01-01", 112000], [ ...

随机推荐

  1. 【chromium】cef是如何进行版本控制的?

    搜了搜cef相关的文章,内容大多是 如何下载源码,如何编译,还有一些源码剖析,但是很少有人说明对cef进行开发时如何保存修改,使用git进行修改后的版本控制. cef是怎么做的? cef源码分为两个部 ...

  2. [Atcoder ARC103D]Robot Arms

    题目大意:平面上有$n$个点,要求你构造$m$条边(满足$m\leqslant40$),使得可以从原点到达给定的$n$个点(边必须平行于坐标轴).并要求输出每一条边的方向,每条边必须都使用,无解输出$ ...

  3. IEDA 启动main报 stock

    1 . 启动资源管理器关闭java进程,重新启动还是没有解决问题 2.看网上说jdk版本1.8换成1.7 启动成功,已解决,不知道为为什么.

  4. SQL Server的常用提示

    在SQL Server中,有许多SQL语句的提示,本文总结一些比较常用的提示. OPTION LOOP/MERGE/HASH JOIN提示 该提示可以改变整个SQL语句中所有JOIN的关联算法,所以请 ...

  5. Kafka Internals: Consumers

    Check out my last article, Kafka Internals: Topics and Partitions to learn about Kafka storage inter ...

  6. j.u.c: Java并发包的5大块

    //TODO Executors: ExecutorService executor = Executors.newFixedThreadPool(10);... newForkJoinPool(). ...

  7. Beego 学习笔记13:Api编写

    Api编写 1>     api常用的数据的格式有json和xml这两种. 2>     下面开始讲解不同的数据格式使用的方式 1->JSON 数据直接输出. 调用 ServeJSO ...

  8. Typora优化-适合不懂CSS代码的小白

    转载请注明出处:https://www.cnblogs.com/nreg/p/11116176.html  先来一张优化前与优化后的对比图: 优化前: 优化后: 1.通过 文件-偏好设置 打开主题文件 ...

  9. Java 之 Random 类

    一.Random 类  random 类的实例用于生成伪随机数. Demo: Random r = new Random(); int i = r.nextInt(); 二.Random 使用步骤 1 ...

  10. Git submodule 子模块的管理和使用

    因为代码分了两个小组管理,一部分代码使用跨平台语言实现,一部分使用原生实现. 所以使用Git submodule 来进行管理. 1,查看/更新 子模块 $ git submodule add ssh: ...