tkinter显示折线图
时间: 2023-07-13 15:24:11 浏览: 152
要在Tkinter中显示折线图,可以使用matplotlib库。以下是一个简单的示例代码:
```python
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import tkinter as tk
# 创建Tkinter窗口
root = tk.Tk()
root.title("折线图")
# 创建Matplotlib图表
fig = plt.figure(figsize=(5, 4), dpi=100)
ax = fig.add_subplot(111)
# 绘制折线图
x = [1, 2, 3, 4, 5]
y = [3, 5, 4, 6, 7]
ax.plot(x, y)
# 将图表嵌入Tkinter窗口
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
# 运行Tkinter事件循环
tk.mainloop()
```
在这个例子中,我们首先创建了一个Tkinter窗口。然后,我们创建一个Matplotlib图表,并在其中绘制一个简单的折线图。最后,我们将图表嵌入到Tkinter窗口中,并启动Tkinter事件循环以显示窗口和图表。
相关问题
tkinter绘制折线图
要使用Tkinter绘制折线图,你可以按照以下步骤进行操作:
1. 导入Tkinter模块和绘图相关模块:
```python
import tkinter as tk
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
```
2. 创建一个Tkinter窗口和画布:
```python
root = tk.Tk()
canvas = tk.Canvas(root)
canvas.pack()
```
3. 创建一个Figure对象,并添加一个子图(Axes):
```python
fig = Figure(figsize=(6, 4), dpi=100)
ax = fig.add_subplot(111)
```
4. 定义折线图的数据:
```python
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
```
5. 在子图上绘制折线图:
```python
ax.plot(x, y)
```
6. 创建一个FigureCanvasTkAgg对象,并将其添加到Tkinter画布上:
```python
canvas = FigureCanvasTkAgg(fig, master=canvas)
canvas.draw()
canvas.get_tk_widget().pack()
```
7. 运行Tkinter的事件循环:
```python
tk.mainloop()
```
完整的代码示例如下:
```python
import tkinter as tk
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
# 创建Tkinter窗口和画布
root = tk.Tk()
canvas = tk.Canvas(root)
canvas.pack()
# 创建Figure和Axes对象
fig = Figure(figsize=(6, 4), dpi=100)
ax = fig.add_subplot(111)
# 定义折线图的数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 在子图上绘制折线图
ax.plot(x, y)
# 创建FigureCanvasTkAgg对象并添加到Tkinter画布上
canvas = FigureCanvasTkAgg(fig, master=canvas)
canvas.draw()
canvas.get_tk_widget().pack()
# 运行Tkinter的事件循环
tk.mainloop()
```
这样就可以通过Tkinter绘制一个简单的折线图了。你可以根据需要修改数据和绘图样式。希望对你有所帮助!
tkinter画折线图
以下是使用tkinter绘制折线图的示例代码:
```python
import tkinter as tk
from tkinter import ttk
def create_line(canvas, x1, y1, x2, y2, color):
canvas.create_line(x1, y1, x2, y2, fill=color)
def draw_line_chart(data):
root = tk.Tk()
root.title("折线图")
canvas = tk.Canvas(root, width=400, height=300)
canvas.pack()
x_interval = 300 / (len(data) - 1)
y_interval = 200 / (max(data) - min(data))
for i in range(len(data) - 1):
x1 = i * x_interval + 50
y1 = 250 - (data[i] - min(data)) * y_interval
x2 = (i + 1) * x_interval + 50
y2 = 250 - (data[i + 1] - min(data)) * y_interval
create_line(canvas, x1, y1, x2, y2, 'blue')
root.mainloop()
data = [10, 20, 30, 40, 50, 60, 70]
draw_line_chart(data)
```
这段代码使用了tkinter库创建了一个窗口,并在窗口中绘制了折线图。通过调用`create_line()`方法绘制直线,根据数据的变化连续绘制微直线,从而得到折线图的效果。
阅读全文