我是python新手,我想知道如何计算直方图,并修改输出以创建不同的图形。你知道吗
现在我显示的直方图中有两个数据集(失败和成功)
我想做的是,将两个柱状图条转换成成功率的百分比度量
这是生成这个图形的代码。。。你知道吗
def GetCol(inData, col=None, equals=None):
if( equals is not None ):
sub_index = inData[col] == equals
return inData[sub_index]
elif( col is not None ):
return inData[col]
else:
return inData
# Creates and returns a fig with histogram comparies col values - using cols shared by success and failed features
def GetHistogram_Success_Vs_Failure(success, failed, binCount=20, xlbl='', ylbl=''):
fig, (ax1) = plt.subplots(1, 1)
n, bins, patches = ax1.hist([failed, success], bins=binCount, align='left', color=['red','blue'], label=['Stopouts','Winners'])
ax1.set_xlabel(xlbl, fontsize=18)
ax1.set_ylabel(ylbl, fontsize=18)
ax1.legend(loc='upper right')
return fig, ax1
# get the data
data = pd.read_csv("D:\\python\\Quant testing\\Candle Body Experiment\\CandleBodySignal_EA.csv")
#replace spaces with '_' and all to lower case
data.columns = [col.replace(' ', '_') for col in data.columns]
success = GetCol(data, "Closed_In_Favor", 1)
fail = GetCol(data, "Closed_In_Favor", 0)
title = "AUDUSD 6 Hour Data 2015-2018"
measureAtCol = "Candle_Body_As_ATR(100)_PCT"
colLabel = "Candle Body Percentage of ATR"
fig, ax1 = GetHistogram_Success_Vs_Failure(success[measureAtCol], fail[measureAtCol], 80, colLabel, "Num Trades")
plt.xlim(xmin=-20, xmax = 300)
tick_spacing = 20
ax1.xaxis.set_major_locator(ticker.MultipleLocator(tick_spacing))
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.title(title)
plt.show()
我知道我们可以利用直方图的返回值
fig, (ax1, ax2) = plt.subplots(2, 1)
n, bins, patches = ax1.hist([failed, success], bins=binCount, align='left', color=['red','blue'], label=['Stopouts','Winners'])
#try play with the histogram outputs
successSpread = n[0] - n[1]
ax2.plot(successSpread)
如何将修改后的数据保存在x轴的上下文中?你知道吗
你可以想象,如果我成功绘制Spread,数据将与原始直方图“不同步”,因为它缺少x数据点。你知道吗
非常感谢!你知道吗
看起来你根本不想画直方图。相反,您希望使用两个直方图的值并计算出与之不同的值。你知道吗
相关问题 更多 >
编程相关推荐