dedecms 调用网站内部搜索/导购网站怎么推广
一、折线图:展现股价走势
1.1、简单版-股价走势图
# 简洁版import pandas as pdimport matplotlib.pyplot as plt# 读取CSV文件df = pd.read_csv('../数据集/格力电器.csv')data = df[['high', 'close']].plot()plt.show()
首先通过df[['high','close']]从df中获取最高价和收盘价这两列特征数据,其为一个DataFrame数组对象,调用该对象的plot()对象,就可以完成绘制。
plot()函数生成图形时,默认将DataFrame对象的索引传给Matplotlib绘制X轴,DataFrame对象的各列数据作为Y轴分别绘制折线等图形。使用plt.show()函数展示。
参数名称 | 描述 |
---|---|
x | 指定应用于X轴的行标签或位置,默认为None,仅对DataFrame有效 |
y | 指定应用于Y轴的行标签或位置,如果有多个,存放于list中,默认为None,仅对DataFrame有效 |
kind | str,指定绘制的图形类型:"line":折线图(默认)。"density":密度图。"bar":条形图。"area":面积图。"barth":横向条形图。"pie":饼图。"hist":直方图。"scatter":散点图,需要指定X轴、Y轴**。"box":箱线图。"hexbin":蜂巢图,需要指定X轴、Y轴。"kde":密度图。 |
ax | 绘制图形的subplot对象,默认为当前的subplot对象 |
subplots | bool。是否针对不同列单独绘制子图 |
sharex | 如果ax为None,则默认为True,否则为False |
sharey | bool。在subplots=True前提下,如果有子图,子图是否共享Y轴,默认为False |
figsize | 元组型。(wigth,height),指定画布尺寸大小,单位为英寸 |
user_index | bool。是否使用索引作为X轴数据,默认为True |
title | 标题 |
grid | bool。是否显示网格 |
legend | bool。是否显示网格的图例,默认为True |
xticks | 序列。设置X轴的刻度值 |
yticks | 序列。设置Y轴的刻度值 |
xlim | 数值(最小值)、列表或元组(区间范围)。设置X轴范围 |
ylim | 数值(最小值)、列表或元组(区间范围)。设置Y轴范围 |
xlabel | 设置X轴的名称。默认使用行索引名。仅支持Pandas1.1.0及以上版本 |
ylabel | 设置Y轴的名称。仅支持Pandas1.1.0及以上版本 |
rot | int。设置轴刻度旋转角度,默认为None |
fontsize | int。设置轴刻度字体大小 |
colormap | string或colormap对象。设置图区域颜色 |
secondary_y | bool或序列。是否需要在次Y轴上绘制,或者在次Y轴上绘制哪些列 |
stacked | bool,是否创建堆积图。折线图和条形图默认为F alse,面积图默认为True |
1.2、美化版-股价走势图
import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文格式plt.rcParams['axes.unicode_minus'] = False # 正常显示负号df = pd.read_csv('../数据集/格力电器.csv')data = df[['high','close']].head(22)# x轴刻度x_ticks = [i for i in range(data.shape[0])]# 美化版data.plot(title='最高价和收盘价的股价走势图',xlabel='行索引值', # 默认值ylabel='股价',xticks=x_ticks)plt.show() # 展示图形
1.3、添加日期的股价走势图
import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文格式plt.rcParams['axes.unicode_minus'] = False # 正常显示负号df = pd.read_csv('../数据集/格力电器.csv')# 日期转换->'2024/04/08/date = df['trade_date'].astype(str)year = date.str[:4] # 提取前4位,即年份month=date.str[4:6] # 提取月day=date.str[6:8] # 提取日# 合并日期,格式为YYYY/MM/DD格式的字符串df['trade_date'] = year + '/' + month + '/' +daydf.sort_values(by='trade_date',inplace=True) # 由大到小排序x_ticks = [i for i in range(22)]df.head(22).plot(x='trade_date',y=['high','close'],xticks = x_ticks, # X轴刻度值rot=90, # X轴刻度值倾斜度fontsize=15, # 字体大小title='最高价和收盘价的股价走势图',xlabel='日期', # 默认值ylabel='股价',grid=True # 显示网格线)plt.show()
二、散点图:展示股价影响因素
2.1、散点图
使用plot()函数绘制散点图,将kind参数设置为"scatter"即可,
import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文格式plt.rcParams['axes.unicode_minus'] = False # 正常显示负号# 读取数据df = pd.read_csv('../数据集/格力电器.csv')# ---------------------------## 绘制图形df.plot(x='vol',y='high',kind='scatter',# 默认为折线图,scatter为散点图title='格力电器成交量和最高价之间的关系散点图',xlabel='成交量',ylabel='最高价',c='red',)# 展示图形plt.show()
2.2、散点图-子图
若还想展示成交量、成交额、收盘价、涨跌额、涨跌幅之间关系的散点图,可以作为子图放到一个大的画布中:
import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文格式plt.rcParams['axes.unicode_minus'] = False # 正常显示负号df = pd.read_csv('../数据集/格力电器.csv') # # 读取数据fig,axes = plt.subplots(2,2) # 准备画布# 子图1:df.plot(x='vol',y='high',kind='scatter',# 默认为折线图,scatter为散点图title='格力电器成交量和最高价之间的关系散点图',xlabel='成交量',ylabel='最高价',c='red',ax=axes[0][0])# 子图2:df.plot(x='vol',y='close',kind='scatter',# 默认为折线图,scatter为散点图title='格力电器成交量和收盘价之间的关系散点图',xlabel='成交量',ylabel='收盘价',c='green',ax=axes[0][1])# 子图3:df.plot(x='amount',y='high',kind='scatter',# 默认为折线图,scatter为散点图title='格力电器成交额和最高价之间的关系散点图',xlabel='成交额',ylabel='最高价',c='red',ax=axes[1][0])# 子图4:df.plot(x='amount',y='close',kind='scatter',# 默认为折线图,scatter为散点图title='格力电器成交额和收盘价之间的关系散点图',xlabel='成交额',ylabel='收盘价',c='green',ax=axes[1][1])plt.subplots_adjust(wspace=0.8, # 子图之间的距离hspace=0.5)plt.show()
三、条形图:展现同比成交量
import matplotlib.pyplot as pltimport pandas as pdplt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文格式plt.rcParams['axes.unicode_minus'] = False # 正常显示负号# 1、读取CSV文件df = pd.read_csv('../数据集/格力电器.csv')date = df['trade_date'].astype(str)# 2、提取年和月year = date.str[:4]month = date.str[4:6]df['year'] = yeardf['month'] = month# 3、按照年和月分组,获取2018和2019年的每月平均成交量group = df[['year', 'month', 'vol']].groupby(by=['year', 'month']) # 按照年和月分组g_m = group.mean() # 获取所有字段的平均值m_18 = g_m['vol']['2018'] # 获取2018年每月平均成交量m_19 = g_m['vol']['2019'] # 获取2019年每月平均成交量# 4、将2018和2019年每月成交量平均值数据存储于DataFrame中df2 = pd.DataFrame(list(zip(m_18, m_19)), index=[str(i) + '月' for i in range(1, 13)], columns=['2018', '2019'], )# 5、绘制条形图df2.plot(kind='bar', # 条形图title='2018年和2019年格力电器每月平均成交量条形图',xlabel='月份',ylabel='成交量均量')plt.show()
若要绘制堆叠条形图,只需在plot()函数中将参数stacked设置为True即可。
若要将条形显示为横向条形图,只需将参数kind设置为barh即可。
四、饼图:展现成交量占比关系
import pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文格式plt.rcParams['axes.unicode_minus'] = False # 正常显示负号#1、读取CSV文件df = pd.read_csv('../数据集/格力电器.csv')#2、提取年和月date = df['trade_date'].astype(str)year = date.str[:4] # 提取前4位,即年份month = date.str[4:6] # 提取月份df['year'] = year # 将年份插入到数据集中df['month'] = month # 将月份插入到数据集中#3、按照年和月分组,获取2018年每月总成交量group = df[['year','month','vol']].groupby(by=['year','month']) # 按年和月分组g_s = group.sum() # 获取所有字段总和s_18 = g_s['vol']['2018'] # 获取2018年每月总成交量s_18.index= [str(i) + '月' for i in range(1,13)]#4、绘制图形s_18.plot(kind='pie',title='2018年格力电器每月成交量占比',autopct='%.2f%%', # 百分比)plt.show()
五、K线图:展现股价走势
5.1、mplfinance的安装与下载
pip install mplfinance
5.2、绘制K线图
import mplfinance as mpfimport pandas as pddata = pd.read_csv('../数据集/格力电器.csv')data.sort_values(by=['trade_date'], inplace=True)date = data['trade_date'].astype(str)year = date.str[:4]month = date.str[4:6]day = date.str[6:8]data['trade_date'] = year + '/' + month + '/' + daydata.index = pd.DatetimeIndex(data['trade_date'])data = data[['open', 'close', 'high', 'low', 'vol']]data.columns = ['Open', 'Close', 'High', 'Low', 'Volume']mpf.plot(data.head(70), # 绘制图形的数据(选取前70条)type='candle', # 设置图像类型volume=True, # 是否显示成交量style='charles')# 设置图表样式为"charles"
mplfinance的plot()函数的常用参数:
参数 | 描述 |
---|---|
type | 设置绘制的 图像类型,有'ohlc'、'candle'、'line'、'renko'类型 |
volume | 是否显示成交量,默认不显示 |
style | 设置的图表样式,可以通过mpf.available_style()方法获取mplfinance提供的样式名称,有'binance','blueskies','brasil'....。可以自定义样式。 |
title | 设置标题 |
ylabel | 设置主图Y轴标题 |
ylabel_lower | 设置次图的Y轴标题 |
mav | 设置均线,如2日均线,5日均线,10日均线等 |
savefig | 保存图片 |
下面通过自定义图表样式来美化K线图:
import mplfinance as mpf
import pandas as pddata = pd.read_csv('../数据集/格力电器.csv')
data.sort_values(by=['trade_date'], inplace=True)
date = data['trade_date'].astype(str)year = date.str[:4]
month = date.str[4:6]
day = date.str[6:8]
data['trade_date'] = year + '/' + month + '/' + day
data.index = pd.DatetimeIndex(data['trade_date'])data = data[['open', 'close', 'high', 'low', 'vol']]
data.columns = ['Open', 'Close', 'High', 'Low', 'Volume']# 设置K线颜色
my_color = mpf.make_marketcolors(up='red', # 设置阳线柱填充颜色down='green', # 设置阴线柱填充颜色edge='i', # 设置蜡烛线边缘颜色wick='black', # 设置蜡烛上下影线的颜色volume={'up': 'red', 'down': 'green'} # 设置成交量颜色)# 设置图表样式
my_style = mpf.make_mpf_style(marketcolors=my_color,gridaxis='both', # 设置网格线位置,both双向gridstyle='-.', # 设置网格线类型base_mpf_style='charles',rc={'font.family': 'SimHei'} # 设置字体为黑体)# 绘制K线图
mpf.plot(data.head(70),type='candle', # 设置图像类型'ohlc'/'candle'/'line/renko'mav=(2, 5, 10), # 绘制2日均线、5日均线和10日均线volume=True, # 显示成交量style=my_style, # 自定义图表样式title='格力电器2018年K线图', # 设置标题ylabel='价格', # 设置主图Y轴标题ylabel_lower='成交量' # 设置次图Y轴标题)
mplfinance的make_mpf_style()函数的常用参数:
参数 | 描述 |
---|---|
base_mpf_style | 使用mplfinance中的系统样式,可以在make_marketcolors方法中使用,也可以在make_mpf_style中使用 |
base_mpl_style | 使用mplfinance中的系统样式,比如:base_mpl_style='seaborn' |
marketcolors | 使用自定义样式 |
mavcolors | 设置nav均线颜色,必须使用列表传递参数 |
facecolor | 设置前景色 |
edgecolor | 设置边缘线颜色 |
figcolor | 设置填充色 |
gridcolor | 设置网格线颜色 |
gridaxis | 设置网格线方向,'both'、'horizontal'、'vertical‘ |
gridstyle | 设置网格线线型。'-'[或solid]、’-’[或dashed]、'-.'[或dashdot]、':'[或dotted]、None |
y_on_right | 设置Y轴位置是否在左右 |
rc | 使用rcParams的dict设置样式,如果内容与上面自定义的设置相同,那么自定义设置覆盖rcParams设置 |
相关文章:

使用Pandas实现股票交易数据可视化
一、折线图:展现股价走势 1.1、简单版-股价走势图 # 简洁版import pandas as pdimport matplotlib.pyplot as plt# 读取CSV文件df pd.read_csv(../数据集/格力电器.csv)data df[[high, close]].plot()plt.show() 首先通过df[[high,close]]从df中获取最高价和收盘…...

蓝桥杯刷题-乌龟棋
312. 乌龟棋 - AcWing题库 /* 状态表示:f[b1,b2,b3,b4]表示所有第 i种卡片使用了 bi张的走法的最大分值。状态计算:将 f[b1,b2,b3,b4]表示的所有走法按最后一步选择哪张卡片分成四类:第 i类为最后一步选择第 i种卡片。比如 i2,则…...

美国纽扣电池认证标准要求16 CFR 第 1700和ANSI C18.3M标准
法规背景 为了纪念瑞茜哈姆史密斯(Reese Hamsmith)美国德州一名于2020年12月因误食遥控器里的纽扣电池而不幸死亡的18个月大的女婴。 美国国会于2022年8月16日颁布了H.R.5313法案(第117-171号公众法)也称为瑞茜法案(Reese’s Law)…...

华硕ROG幻16笔记本电脑模式切换管理工具完美替代华硕奥创中心管理工具
文章目录 华硕ROG幻16笔记本电脑模式切换管理工具完美替代华硕奥创中心管理工具1. 介绍2. 下载3. 静音模式、平衡模式、增强模式配置4. 配置电源方案与模式切换绑定5. 启动Ghelper控制面板6. 目前支持的设备型号 华硕ROG幻16笔记本电脑模式切换管理工具完美替代华硕奥创中心管理…...

【ROS2笔记六】ROS2中自定义接口
6.ROS2中自定义接口 文章目录 6.ROS2中自定义接口6.1接口常用的CLI6.2标准的接口形式6.3接口的数据类型6.4自定义接口Reference 在ROS2中接口interface是一种定义消息、服务或动作的规范,用于描述数据结构、字段和数据类型。ROS2中的接口可以分为以下的几种消息类型…...

设计模式-代理模式(Proxy)
1. 概念 代理模式(Proxy Pattern)是程序设计中的一种结构型设计模式。它为一个对象提供一个代理对象,并由代理对象控制对该对象的访问。 2. 原理结构图 抽象角色(Subject):这是一个接口或抽象类࿰…...

中伟视界:智慧矿山智能化预警平台功能详解
矿山智能预警平台是一种高度集成化的安全监控系统,它能够提供实时的监控和报警功能,帮助企业和机构有效预防和响应潜在的安全威胁。以下是矿山智能预警平台的一些关键特性介绍: 报警短视频生成: 平台能够在检测到报警时自动生成短…...

如何在PPT中获得网页般的互动效果
如何在PPT中获得网页般的互动效果 效果可以看视频 PPT中插入网页有互动效果 当然了,获得网页般的互动效果,最简单的方法就是在 PPT 中插入网页呀。 那么如何插入呢? 接下来为你讲解如何获得(此方法在 PowerPoint中行得通&#…...

HTML段落标签、换行标签、文本格式化标签与水平线标签
目录 HTML段落标签 HTML换行标签 HTML格式化标签 加粗标签 倾斜标签 删除线标签 下划线标签 HTML水平线标签 HTML段落标签 在网页中,要把文字有条理地显示出来,就需要将这些文字分段显示。在 HTML 标签中,<p>标签用于定义段落…...

NVIC简介
NVIC(Nested Vectored Interrupt Controller)是ARM处理器中用于中断管理的一个重要硬件模块。它负责处理来自多个中断源的中断请求,并根据中断的优先级来安排处理器执行相应的中断服务例程(ISR)。NVIC是ARM Cortex-M系…...

LeetCode-924. 尽量减少恶意软件的传播【深度优先搜索 广度优先搜索 并查集 图 哈希表】
LeetCode-924. 尽量减少恶意软件的传播【深度优先搜索 广度优先搜索 并查集 图 哈希表】 题目描述:解题思路一:解题思路二:0解题思路三:0 题目描述: 给出了一个由 n 个节点组成的网络,用 n n 个邻接矩阵图…...

【linux】yum 和 vim
yum 和 vim 1. Linux 软件包管理器 yum1.1 什么是软件包1.2 查看软件包1.3 如何安装软件1.4 如何卸载软件1.5 关于 rzsz 2. Linux编辑器-vim使用2.1 vim的基本概念2.2 vim的基本操作2.3 vim命令模式命令集2.4 vim底行模式命令集2.5 vim操作总结补充:vim下批量化注释…...

excel试题转word格式
序号试题选项答案 格式如上。输出后在做些适当调整就可以。 import pandas as pd from docx import Document from docx.shared import Inches# 读取Excel文件 df pd.read_excel(r"你的excel.xlsx")# 创建一个新的Word文档 doc Document()# 添加标题 doc.add_headi…...

C语言学习笔记之指针(二)
指针基础知识:C语言学习笔记之指针(一)-CSDN博客 目录 字符指针 代码分析 指针数组 数组指针 函数指针 代码分析(出自《C陷阱和缺陷》) 函数指针数组 指向函数指针数组的指针 回调函数 qsort() 字符指针 一…...

在Debian 12系统上安装Docker
Docker 在 Debian 12 上的安装 安装验证测试更多信息 引言 在现代的开发环境中,容器技术发挥着至关重要的作用。Docker 提供了快速、可靠和易于使用的容器化解决方案,使开发人员和 DevOps 专业人士能够以轻松的方式将应用程序从一个环境部署到另一个环…...

策略者模式(代码实践C++/Java/Python)————设计模式学习笔记
文章目录 1 设计目标2 Java2.1 涉及知识点2.2 实现2.2.1 实现两个接口飞行为和叫行为2.2.2 实现Duck抽象基类(把行为接口作为类成员)2.2.3 实现接口飞行为和叫行为的具体行为2.2.4 具体实现鸭子2.2.5 模型调用 3 C(用到了大量C2.0的知识&…...

vue2/Vue3项目中,通过请求接口来刷新列表中的某个字段(如:Axios)
vue2/Vue3项目中,通过请求接口来刷新列表中的某个字段。可以使用 Vue 的异步请求库(如 Axios)来发送请求,并在请求成功后更新相应的字段。 示例如下(Vue2): 简单的示例如下,假设列…...

Java多线程锁定
前言 利用多线程编程虽然能极大地提升运行效率,但是多线程本身的不稳定也会带来一系列的问题,其中最经典莫过于售票问题;这时就需要人为地加以限制和干涉已解决问题,譬如今日之主题——锁定。 锁定是我们在多线程中用来解决售票…...

【C 数据结构】单链表
文章目录 【 1. 基本原理 】1.1 链表的节点1.2 头指针、头节点、首元节点 【 2. 链表的创建 】2.0 创建1个空链表(仅有头节点)2.1 创建单链表(头插入法)*2.2 创建单链表(尾插入法) 【 3. 链表插入元素 】【…...

[MAUI]集成富文本编辑器Editor.js至.NET MAUI Blazor项目
文章目录 获取资源从源码构建从CDN获取获取扩展插件 创建项目创建控件创建Blazor组件初始化保存销毁编写渲染逻辑 实现只读/编辑功能切换模式获取只读模式状态响应切换事件 实现明/暗主题切换项目地址 Editor.js 是一个基于 Web 的所见即所得富文本编辑器,它由CodeX…...

Spring Boot | Spring Boot 整合 “Servlet三大组件“ ( Servlet / Filter / Listene )
目录: Spring Boot 整合 "Servlet三大组件" :1. 使用 "组件注册" 的方式 "整合Servlet三大组件" ( 实际操作为 : 创建自定义的"三大组件"对象 结合刚创建"的自定义组件对象"来 将 XxxRegistrationBean对象 通过…...

错误分析 (Machine Learning研习十九)
错误分析 您将探索数据准备选项,尝试多个模型,筛选出最佳模型,使用 Grid SearchCV微调其超参数,并尽可能实现自动化。在此,我们假设您已经找到了一个有前途的模型,并希望找到改进它的方法。其中一种方法就…...

SQL系统函数知识点梳理(Oracle)
这里写目录标题 函数系统函数转换函数to_date()to_char()将数值转换成字符格式 添加货币符号将日期转换成字符 其他不常用的转换函数 字符型函数连接函数大小写转换函数大写转换小写转换首字母大写,其余的小写 替换函数去除空格函数截取函数填充函数获取字符长度函数…...

面试突击---MySQL索引
面试突击---MYSQL索引 面试表达技巧:1、谈一下你对于mysql索引的理解?(为什么mysql要选择B树来存储索引)2、索引有哪些分类?3、聚簇索引与非聚簇索引4、回表、索引覆盖、最左匹配原则、索引下推(1ÿ…...

关注 | 我国已对百种产品实施强制性产品认证
市场监管总局在7日举行的新闻发布会上介绍,该局日前发布《市场监管总局关于对商用燃气燃烧器具等产品实施强制性产品认证管理的公告》,对具有较高安全风险的商用燃气燃烧器具、阻燃电线电缆、电子坐便器、电动自行车乘员头盔、可燃气体探测报警产品、水性…...

虚幻引擎架构自动化及蓝图编辑器高级开发进修班
课程名称:虚幻引擎架构自动化及蓝图编辑器高级开发进修班 课程介绍 大家好 我们即将推出一套课程 自动化系统开发。 自动化技术在项目开发的前中后期都大量运用。如何您是一家游戏公司,做的是网络游戏,是不是经常会遇到程序员打包加部署需…...

Weakly Supervised Audio-Visual Violence Detection 论文阅读
Weakly Supervised Audio-Visual Violence Detection 论文阅读 摘要III. METHODOLOGYA. Multimodal FusionB. Relation Modeling ModuleC. Training and Inference IV. EXPERIMENTSV. CONCLUSION阅读总结 文章信息: 发表于:IEEE TRANSACTIONS ON MULTIME…...

华为海思数字芯片设计笔试第六套
声明 下面的题目作答都是自己认为正确的答案,并非官方答案,如果有不同的意见,可以评论区交流。 这些题目也是笔者从各个地方收集的,感觉有些题目答案并不正确,所以在个别题目会给出自己的见解,欢迎大家讨论…...

重绘和重排:概念、区别和应用示例
还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…...

创建k8s deploy yaml文件的imagePullSecrets语句
镜像仓库是harbor kubectl create secret docker-registry key --docker-server192.168.0.190 --docker-usernameadmin --docker-passwordHarbor12345...