Python绘制股票日K图(七)给柱状图加上标签

知道了换手率还不够,必须还要结合当天的成交额来判断当前股票的吸引力,所以我们还可以给柱状图加上当天的成交额为其标签,结合起来看。

给柱状图加标签的代码如下:

ax_hsl = ax.bar(
        np.arange(0, len(stock_data.index)-begin),
        stock_data.change[begin:],
        color=['g' if stock_data.open[x] > stock_data.close[x] else 'r' for x in range(begin, len(stock_data.index))])
    ax.bar_label(
        ax_hsl,  # 要打标签的柱状图
        labels=stock_data.dealLabel[begin:],  # 标签,为当日的成交额(亿)
        label_type='edge',  # 标签显示的位置,edge(顶部),center(柱状图中间)
        fontsize='28',  # 标签字体大小
        fmt="%.f")  # 标签数据格式

我们首先要获取该柱状图,再把该柱状图作为参数传给bar_label()。

完整的代码如下:

# 仅制作单股票的换手率柱状图
# 2、给柱状图添加标签
import pandas
import numpy as np
import matplotlib.pyplot as plt


dir_name = 'D:\\gupiao\\'


def paint_dayk(code):
    # 1、获取数据
    stock_data = pandas.read_csv(dir_name + code + '.txt')  # 读取数据
    begin = len(stock_data) - 120  # 取最近120天的数据
    if begin < 0:  # 如果上市未满120天,则从上市当天开始显示
        begin = 0
    # 2、画日K图
    fig = plt.figure(  # 添加fig对象
        figsize=(54, 28),  # 设置fig大小,长和宽,单位为英寸
        dpi=120)  # 每英寸的像素点数
    gs = fig.add_gridspec(1, 1)  # 在fig中添加一个一行一列的网格
    ax = fig.add_subplot(gs[0, 0])  # 在fig中添加网格的第一块,并返回一套坐标轴
    ax_hsl = ax.bar(
        np.arange(0, len(stock_data.index)-begin),
        stock_data.change[begin:],
        color=['g' if stock_data.open[x] > stock_data.close[x] else 'r' for x in range(begin, len(stock_data.index))])
    ax.bar_label(
        ax_hsl,  # 要打标签的柱状图
        labels=stock_data.dealLabel[begin:],  # 标签,为当日的成交额(亿)
        label_type='edge',  # 标签显示的位置,edge(顶部),center(柱状图中间)
        fontsize='28',  # 标签字体大小
        fmt="%.f")  # 标签数据格式
    ax.grid(axis='x', linestyle='-.')  # 添加x轴方向的网格
    ax.grid(axis='y', linestyle='-.')  # 添加y轴方向的网格
    ax.yaxis.tick_right()  # 将y轴的数值显示在右边
    ax.set_xlim(0, len(stock_data.index) - begin, 1)  # 设置x轴的范围
    ax.set_xticks(range(0, len(stock_data.index) - begin, 1))  # 设置x轴的刻度
    ax.axes.set_xticklabels(stock_data.week[begin:])

    for label in ax.xaxis.get_ticklabels():  # 设置x轴标签的字体大小
        label.set_fontsize(16)
    for label in ax.yaxis.get_ticklabels():  # 设置y轴标签的字体大小
        label.set_fontsize(40)

    # 3、输出日K图
    plt.savefig(dir_name + code + '.jpg')  # 保存图片


def main():
    code = '000001'
    paint_dayk(code)


if __name__ == '__main__':
    main()

生成的图形如下:

Python绘制股票日K图(七)给柱状图加上标签_第1张图片

 更多数据下载:股票数据,最近两百天,更新到了20220809-数据集文档类资源-CSDN下载

你可能感兴趣的:(Python绘制股票日K图,python,matplotlib,开发语言)