如何为含重复x值的x-y数据对筛选对应最小y值并绘图?
按X值分组筛选最小Y值并绘图
数据处理步骤
先通过字典对相同X值的Y值进行分组,再提取每组的最小Y值:
x = [10, 10, 20, 20, 20] y = [0.194, 0.183, 0.202, 0.169, 0.417] # 分组存储相同x对应的所有y值 grouped_data = {} for xi, yi in zip(x, y): if xi not in grouped_data: grouped_data[xi] = [] grouped_data[xi].append(yi) # 提取每个x对应的最小y filtered_x = list(grouped_data.keys()) filtered_y = [min(y_list) for y_list in grouped_data.values()]
执行后得到的filtered_x为[10, 20],filtered_y为[0.183, 0.169],完全符合每个X对应最小Y的需求。
绘图实现
用matplotlib绘制筛选后的结果:
import matplotlib.pyplot as plt plt.scatter(filtered_x, filtered_y, color='blue', s=50) plt.xlabel('X') plt.ylabel('最小Y值') plt.title('X-最小Y值散点图') plt.grid(True, alpha=0.3) plt.show()
错误原因说明
你之前出现的问题是直接取了整个Y数组的最小值,没有按X值分组处理。通过字典分组后,我们只针对每个X对应的Y值列表取最小值,就能避免把全局最小Y和所有X配对的错误。
内容的提问来源于stack exchange,提问作者cat_herder
相关产品推荐
相关产品推荐

