You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取字典键值,使用ezgraphics绘制与数值成正比的矩形及文本?

实现方法

你可以直接遍历字典的键值对完成绘图,无需提前拆分提取,具体逻辑如下:

  • 首先初始化ezgraphics画布,根据你的字典最大数值设置合理的缩放比例,避免矩形超出画布范围
  • 调用字典的items()方法遍历,同时获取每一组国家名(键)和对应数值(值)
  • 按你需要的布局(横向/纵向柱状图)依次绘制正比于数值的矩形,再在对应位置绘制国家名文本
核心键值提取说明

如果你需要单独获取全部国家名和全部数值的列表,可分别调用以下方法:

  • 国家名列表:list(你的字典变量.keys()),返回按字典存储顺序排列的国家名列表
  • 数值列表:list(你的字典变量.values()),返回和国家名顺序一一对应的数值列表

如果是绘图场景更推荐直接遍历键值对,代码更简洁:

for 国家名, 对应数值 in 你的字典变量.items():
    # 直接在循环内调用绘图方法,使用上面两个变量即可
完整示例代码(横向柱状图效果)
from ezgraphics import GraphicsWindow

# 你的原始数据字典
country_data = {'Malaysia': 529.0, 'China': 466.0, 'Scotland': 450.0, 'Japan': 391.0, 'France': 363.0}

# 画布和绘图参数配置
win = GraphicsWindow(800, 600)
canvas = win.canvas()
bar_width = 80  # 每个柱形的固定宽度
gap = 40  # 柱形之间的间隔
x_start = 60  # 第一个柱形的起始X坐标
y_base = 500  # 柱状图底部基线的Y坐标
scale = 0.8  # 数值缩放系数,可根据画布尺寸调整

current_x = x_start
for country, val in country_data.items():
    # 计算柱形高度,和数值成正比
    bar_height = val * scale
    # 绘制矩形:参数依次为左上角X、左上角Y、宽度、高度
    canvas.drawRect(current_x, y_base - bar_height, bar_width, bar_height)
    # 绘制国家名文本,居中对齐在柱形下方
    canvas.drawText(current_x + bar_width/2, y_base + 20, country)
    # 移动X坐标到下一个柱形的起始位置
    current_x += bar_width + gap

# 保持绘图窗口显示
win.wait()

内容的提问来源于stack exchange,提问作者user17501894

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:15:01