解决问题的一个简单方法是根据 df2 值获取“颜色桶”
这里是一个例子
df_1 = [20, 20, 20, 30, 30, 30, 40, 40, 40]
df_2= [100, 200, 1000, 100, 200, 1000, 100, 200, 1000]
在这里我正在构建我的颜色“桶”
my_lists = {}
for i in range(len(df_2)):
if 0<1/df_2[i]<0.005:
if 'bucket1' not in my_lists:
my_lists['bucket1'] = ([df_1[i]], [df_2[i]], 'darkgreen')
else:
my_lists['bucket1'][0].append(df_1[i])
my_lists['bucket1'][1].append(df_2[i])
if 0.005<=1/df_2[i]<0.010:
if 'bucket2' not in my_lists:
my_lists['bucket2'] = ([df_1[i]], [df_2[i]], 'limegreen')
else:
my_lists['bucket2'][0].append(df_1[i])
my_lists['bucket2'][1].append(df_2[i])
if 0.01<=1/df_2[i]<0.02:
if 'bucket3' not in my_lists:
my_lists['bucket3'] = ([df_1[i]], [df_2[i]], 'lime')
else:
my_lists['bucket3'][0].append(df_1[i])
my_lists['bucket3'][1].append(df_2[i])
for key, value in my_lists.items():
plt.scatter(value[0], 1/np.array(value[1]), c=[value[2]])
结果
更多桶的更新
my_lists = {}
for i in range(len(df_2)):
if 0<1/df_2[i]<0.005 and 0<df_1[i]<21:
if 'bucket1' not in my_lists:
my_lists['bucket1'] = ([df_1[i]], [df_2[i]], 'darkgreen')
else:
my_lists['bucket1'][0].append(df_1[i])
my_lists['bucket1'][1].append(df_2[i])
if 0.005<=1/df_2[i]<0.010 and 0<df_1[i]<21:
if 'bucket2' not in my_lists:
my_lists['bucket2'] = ([df_1[i]], [df_2[i]], 'limegreen')
else:
my_lists['bucket2'][0].append(df_1[i])
my_lists['bucket2'][1].append(df_2[i])
if 0.01<=1/df_2[i]<0.02 and 0<df_1[i]<21 :
if 'bucket3' not in my_lists:
my_lists['bucket3'] = ([df_1[i]], [df_2[i]], 'lime')
else:
my_lists['bucket3'][0].append(df_1[i])
my_lists['bucket3'][1].append(df_2[i])
if 0<1/df_2[i]<0.005 and 21<df_1[i]<31:
if 'bucket4' not in my_lists:
my_lists['bucket4'] = ([df_1[i]], [df_2[i]], 'blue')
else:
my_lists['bucket4'][0].append(df_1[i])
my_lists['bucket4'][1].append(df_2[i])
if 0.005<=1/df_2[i]<0.010 and 21<df_1[i]<31:
if 'bucket5' not in my_lists:
my_lists['bucket5'] = ([df_1[i]], [df_2[i]], 'royalblue')
else:
my_lists['bucket5'][0].append(df_1[i])
my_lists['bucket5'][1].append(df_2[i])
if 0.01<=1/df_2[i]<0.02 and 21<df_1[i]<31:
if 'bucket6' not in my_lists:
my_lists['bucket6'] = ([df_1[i]], [df_2[i]], 'lightsteelblue')
else:
my_lists['bucket6'][0].append(df_1[i])
my_lists['bucket6'][1].append(df_2[i])
if 0<1/df_2[i]<0.005 and 31<df_1[i]<41:
if 'bucket7' not in my_lists:
my_lists['bucket7'] = ([df_1[i]], [df_2[i]], 'darkred')
else:
my_lists['bucket7'][0].append(df_1[i])
my_lists['bucket7'][1].append(df_2[i])
if 0.005<=1/df_2[i]<0.010 and 31<df_1[i]<41:
if 'bucket8' not in my_lists:
my_lists['bucket8'] = ([df_1[i]], [df_2[i]], 'firebrick')
else:
my_lists['bucket8'][0].append(df_1[i])
my_lists['bucket8'][1].append(df_2[i])
if 0.01<=1/df_2[i]<0.02 and 31<df_1[i]<41:
if 'bucket9' not in my_lists:
my_lists['bucket9'] = ([df_1[i]], [df_2[i]], 'lightcoral')
else:
my_lists['bucket9'][0].append(df_1[i])
my_lists['bucket9'][1].append(df_2[i])
for key, value in my_lists.items():
plt.scatter(value[0], 1/np.array(value[1]), c=[value[2]])