gpt4 book ai didi

python - 使用tkinter绘制特定条形图

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:33 26 4
gpt4 key购买 nike

enter image description here

我正在尝试找出最简单的方法来制作上面的 bat 图。我正在学习 tkinter 并且我知道我可以使用 CanvasFrameLabel 来完成它,但是它似乎有太多冗余。

最佳答案

一些谷歌搜索显示 this链接到我。

我已经包含了那里给出的示例代码,我希望我已经对其进行了足够的评论,以便您能够理解正在发生的事情。

我有点不确定我的 for-loop 描述的准确性,所以如果有任何错误请评论。

import tkinter as tk


# Define the data points
data = [20, 15, 10, 7, 5, 4, 3, 2, 1, 1, 0]

root = tk.Tk()
root.title("Bar Graph")

c_width = 400 # Define it's width
c_height = 350 # Define it's height
c = tk.Canvas(root, width=c_width, height=c_height, bg='white')
c.pack()

# The variables below size the bar graph
y_stretch = 15 # The highest y = max_data_value * y_stretch
y_gap = 20 # The gap between lower canvas edge and x axis
x_stretch = 10 # Stretch x wide enough to fit the variables
x_width = 20 # The width of the x-axis
x_gap = 20 # The gap between left canvas edge and y axis

# A quick for loop to calculate the rectangle
for x, y in enumerate(data):

# coordinates of each bar

# Bottom left coordinate
x0 = x * x_stretch + x * x_width + x_gap

# Top left coordinates
y0 = c_height - (y * y_stretch + y_gap)

# Bottom right coordinates
x1 = x * x_stretch + x * x_width + x_width + x_gap

# Top right coordinates
y1 = c_height - y_gap

# Draw the bar
c.create_rectangle(x0, y0, x1, y1, fill="red")

# Put the y value above the bar
c.create_text(x0 + 2, y0, anchor=tk.SW, text=str(y))

root.mainloop()

关于python - 使用tkinter绘制特定条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35666573/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com