大家好,欢迎来到IT知识分享网。
等高线图的含义
等高线图(Contour plot)是一种二维图形展示方式,用于表示函数在二维平面上的等高线。等高线图的每条等高线代表函数在该高度上的取值相同的点的集合。
等高线图的绘制方法
在matplotlib中,可以使用contour()函数绘制等高线图。
参数解释:
X:二维数组,表示 x 坐标的网格点。
Y:二维数组,表示 y 坐标的网格点。
Z:二维数组,表示函数在对应网格点的取值。
levels:可选参数,表示要绘制的等高线的高度值。默认为 None,表示自动生成等高线。
kwargs:其他可选参数,用于设置等高线的样式和属性。
以下是一些常用的kwargs参数:
colors:设置等高线的颜色。可以是单个颜色字符串,也可以是颜色字符串列表。默认为 None,表示使用默认颜色。
cmap:设置等高线的颜色映射。可以是 matplotlib 的 colormap 对象或 colormap 名称。默认为 None,表示使用默认颜色映射。
linewidths:设置等高线的线宽。可以是单个线宽值,也可以是线宽值列表。默认为 None,表示使用默认线宽。
alpha:设置等高线的透明度。取值范围为 0 到 1,默认为 1,表示完全不透明。
linestyles:设置等高线的线型。可以是单个线型字符串,也可以是线型字符串列表。默认为 None,表示使用默认线型。
extend:设置颜色映射的扩展。可以是 ‘neither’、‘both’、‘min’ 或 ‘max’。默认为 ‘neither’,表示不扩展颜色映射。
locator:设置等高线标签的位置定位器。可以是 matplotlib.ticker.Locator 对象,也可以是 locator 名称字符串。默认为 None,表示使用默认定位器。
等高线图在量化交易中的应用
在下面的案例中,使用等高线图绘制中国平安2023年3月的开盘价、收盘价、最高价、最低价的等高线图。
import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # 设置为默认字体 plt.rcParams['font.family'] = 'SimHei' # 显示负数 plt.rcParams['axes.unicode_minus'] = False # 导入数据 df = pd.read_excel("2023年一季度A股日线行情.xlsx") # 将日期列转化为日期格式 df["trade_date"] = df["trade_date"].astype("str").apply(lambda x:x[:4]+"-"+x[4:6]+"-"+x[6:]) # 将日期列转换为日期类型,并设置为索引列 df['trade_date'] = pd.to_datetime(df['trade_date']) df.set_index('trade_date', inplace=True) # 筛选2023年3月的行情数据 start_date = '2023-03-01' end_date = '2023-03-31' df = df.loc[start_date:end_date] # 筛选中国平安的3月股票交易数据 stock = df[df['ts_code']=='000001.SZ'] # 生成一个列表,再转置成4*23矩阵(开盘价、收盘价、最高价、最低价四列,23个交易日) price_data = [] price_data.append(stock['open'].tolist()) price_data.append(stock['close'].tolist()) price_data.append(stock['high'].tolist()) price_data.append(stock['low'].tolist()) price_data = np.array(price_data) # 生成坐标 x = np.arange(1, 24) # 日期 y = np.arange(4) # 价格类型 X, Y = np.meshgrid(x, y) # 设置图形大小 plt.figure(figsize=(10, 10)) # 绘制等高线图 plt.contourf(X, Y, price_data, cmap='coolwarm') # 添加颜色条 plt.colorbar() # 设置x轴刻度 x_labels = [str(i)[6:10] for i in stock.index] plt.xticks(x, x_labels) # 设置y轴刻度 plt.yticks(y, ['High', 'Low', 'Open', 'Close']) # 设置x轴标签 plt.xlabel('Date') # 设置y轴标签 plt.ylabel('Price Type') # 设置图标题 plt.title('Stock Price Fluctuation') # 显示图形 plt.show()
最终效果图如下:
从上图中我们可以发现,3月份平安银行的日均线都比较高,但是从3月9日之后,日均价格一直下探,所以在此期间不宜购入股票。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/141911.html