如何在Python中将字典转换为两个一维数组并用于Matplotlib绘图
字典转有序数组并Matplotlib绘图实现
一、将字典转换为有序一维数组
给定目标字典,我们通过对键排序、提取对应值的方式生成两个有序数组:
# 原始字典 original_dict = {4: 6, 6: 2, 1: 2, 3: 7, 5: 4, 9: 1, 2: 3, 7: 2, 8: 1} # 对字典键升序排序得到arr1 arr1 = sorted(original_dict.keys()) # 根据排序后的键提取对应值,生成arr2 arr2 = [original_dict[key] for key in arr1] # 验证输出 print("arr1 =", arr1) # 输出: arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9] print("arr2 =", arr2) # 输出: arr2 = [2, 3, 7, 6, 4, 2, 2, 1, 1]
二、使用Matplotlib绘图
导入Matplotlib库后,直接指定arr2为x轴数据、arr1为y轴数据即可完成绘图,以下是散点图+折线图的示例:
import matplotlib.pyplot as plt # 定义轴数据 x = arr2 y = arr1 # 设置画布大小 plt.figure(figsize=(8, 6)) # 绘制数据点和趋势线 plt.scatter(x, y, color='darkblue', label='数据点') plt.plot(x, y, color='crimson', linestyle='--', label='趋势线') # 设置轴标签与标题 plt.xlabel('arr2 (X轴)') plt.ylabel('arr1 (Y轴)') plt.title('arr2 与 arr1 数据可视化') # 添加图例并显示图形 plt.legend() plt.show()
关键说明
sorted()默认对字典键做升序排序,刚好匹配需求中的arr1顺序。- 列表推导式可快速映射排序后的键与对应值,生成
arr2。 - 若需更换绘图类型(如柱状图、条形图),只需将
scatter()/plot()替换为bar()/barh()等对应方法即可。
内容的提问来源于stack exchange,提问作者jazz_man07
相关产品推荐
相关产品推荐

