import tushare as ts
import numpy as np
import datetime as dt
import matplotlib.pyplot as mp
import matplotlib.dates as md
#引入自己的api,把股票数据引入放到df里面
pro = ts.pro_api('ee5e027680ee512ab9783ae3e78d766ada5b959b441f4b2bba7db241')
df = pro.daily(ts_code='000001.SZ', start_date='20210401', end_date='20210601')
#创建图形实例,设置xy轴
mp.figure("K Line", figsize=(15, 5),facecolor="lightgray")
mp.title("K Line", fontsize=18)
mp.xlabel("Date", fontsize=15)
mp.ylabel("Price", fontsize=15)
mp.tick_params(labelsize=5) #设置刻度标签的字体大小
mp.grid(linestyle=":") #显示网格
# 判断收盘价与开盘价 确定蜡烛颜色
colors_bool = df.close >= df.open
colors = np.zeros(colors_bool.size, dtype="U5")
colors[:] = "blue"
colors[colors_bool] = "white"
# 确定实体边框颜色
edge_colors = np.zeros(colors_bool.size, dtype="U5")
edge_colors[:] = "blue"
edge_colors[colors_bool] = "red"
# 绘制开盘价折线图片
df.trade_date = df.trade_date.astype(md.datetime.datetime)
mp.plot(df.trade_date, df.open, color="b", linestyle="--",
linewidth=2, label="open", alpha=0.3)
# 绘制影线(最高价与最低价)
mp.vlines(df.trade_date, df.low, df.high, color=edge_colors)
#绘制实体
mp.bar(df.trade_date, (df.close - df.open), 0.3, bottom=df.open, color=colors,
edgecolor=edge_colors, zorder=3)
#最终展示
mp.legend() #图例
mp.gcf().autofmt_xdate() #使X轴坐标斜着显示
mp.show()
绘制结果: