Python显示股票直线图和K线图

本文介绍了如何使用Python从Yahoo获取股票数据,并通过matplotlib库显示股票的基本数据和绘制K线图。首先讲解了获取收盘价等数据的步骤,接着详细阐述了如何利用matplotlib绘制收市价格曲线以及绘制K线图的完整代码过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 获取数据

参见Python获取Yahoo股票数据

    fh = finance.fetch_historical_yahoo(code, start_date, end_date)
    data = mlab.csv2rec(fh)
    fh.close()
    data.sort()

2. 显示数据

2.1 显示基本数据

应用matplotlib.plyplot绘制收市数据
(1)获取收市数据

    close_data = data['close']

(2)日期数据

    date_data = data['date']

(3)绘制曲线

plt.plot(date_data, close_data)

(4)显示曲线


                
### 使用 `python-docx` 在 Word 文档中绘制直线 尽管 `python-docx` 是一个强大的库,用于创建操作 Microsoft Word (.docx) 文件,但它并不直接支持绘功能,比如绘制直线或其他形对象。然而,可以通过间接方式实现这一目标。 #### 方法一:利用表格边框模拟线条 虽然无法直接绘制直线,但可以借助表格的边框属性来模拟直线的效果。以下是具体方法: 1. 创建一个单行或多行的表格。 2. 设置特定单元格或整个表格的边框样式为所需的线型、颜色宽度。 3. 删除不需要显示的内容(如文字),仅保留边框作为“直线”。 下面是实现该逻辑的一个代码示例: ```python from docx import Document from docx.shared import Pt, RGBColor def add_line(document, width=Pt(1), color=None): table = document.add_table(rows=1, cols=1) cell = table.cell(0, 0) # 配置边框参数 tcPr = cell._tc.get_or_add_tcPr() borders_xml = f""" <w:top w:val="single" w:sz="{width.lxml_value}" /> <w:left w:val="nil"/> <w:right w:val="nil"/> <w:bottom w:val="nil"/> """ if color is not None: borders_xml += f' w:color="{color}"' from lxml.etree import XMLParser, fromstring parser = XMLParser(remove_blank_text=True, resolve_entities=False) border_elm = fromstring(borders_xml.encode(), parser) tcPr.append(border_elm) document = Document() add_line(document, width=Pt(6), color='FF0000') # 添加红色粗线 document.save('line_example.docx') ``` 此代码片段定义了一个函数 `add_line()`,它接受文档实例以及可选的宽度颜色参数,并向文档添加一条水平直线[^1]。 --- #### 方法二:嵌入外部像文件 如果需要更复杂的线条形状或者自定义角度的直线,则可以选择生成片并将其插入到 Word 中。例如,使用 Python 的绘库(如 Matplotlib 或 PIL)生成所需案,保存为 PNG/JPG 格式后再调用 `python-docx` 插入至文档。 以下是一个简单的例子: ```python import matplotlib.pyplot as plt from docx import Document # 绘制直线并保存为临时文件 plt.plot([0, 1], [0, 1], 'k-', linewidth=5) # 黑色实线 plt.axis('off') # 关闭坐标轴 plt.savefig('temp_line.png', bbox_inches='tight', pad_inches=0) plt.close() # 清理内存中的表资源 # 将片插入到 Word 文档 document = Document() document.add_picture('temp_line.png', width=Cm(10)) document.save('image_line_example.docx') ``` 这种方法更加灵活,适合复杂场景下的需求。 --- #### 总结 由于 `python-docx` 不具备原生绘能力,因此推荐采用上述两种替代方案之一完成任务。对于简单的需求,调整表格边框可能是最便捷的选择;而对于高级定制化情况,则考虑引入额外工具生成静态像再集成到文档之中。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值