您好:参考网路上范例不过范例是在colab上做的我是在spyder做的结果interact 没有产生互动拉桿请问 这是spyder的问题吗?或该如何解决
另外,若是IDE问题,那一般开发后,单独执行,是否也会有问题?
谢谢
import pandas as pd
url = "https://raw.githubusercontent.com/GrandmaCan/ML/main/Resgression/Salary_Data.csv"
data = pd.read_csv(url)
#print(data )
# y = w*x + b
x = data["YearsExperience"]
y = data["Salary"]
#print(x )
#--------------------画图
import matplotlib.pyplot as plt
import matplotlib as mpl
from matplotlib.font_manager import fontManager
fontManager.addfont("../ChineseFont.ttf") #若字体放在上一层目录
mpl.rc("font", family="ChineseFont") #设定字形
#---------------预测 # y_pred = w*x + b
def plot_pred(w,b): #
y_pred=x*w+ b
plt.plot(x, y_pred, color=\'blue\' ,label="预测线")
plt.scatter(x, y, marker="x", color="red", label="真实数据")
plt.title("年资-薪水") #预设不支援中文
plt.xlabel("年资")
plt.ylabel("月薪(千)")
plt.xlim( [0, 12] ) #设定轴的 区间值
plt.ylim( [-60, 140] )
plt.legend() #把label秀出来
plt.show()
\'\'\'
w=0
b=10
plot_pred(w,b)
\'\'\'
from ipywidgets import interact #互动元件
interact(plot_pred, w=(-100, 100, 1), b=(-100, 100, 1))
1 个回答
0
zivzhong
iT邦研究生 4 级 ‧ 2025-02-25 03:29:18
最佳解答
感觉可以用 matplotlib.widgets.Slider 来模拟互动(?):
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
# 建立图形和滑桿
fig, ax = plt.subplots()
plt.subplots_adjust(left=0.1, bottom=0.25)
# 初始参数
w_init = 1
b_init = 10
y_pred = x * w_init + b_init
# 画图
line, = ax.plot(x, y_pred, color=\'blue\', label="预测线")
ax.scatter(x, y, marker="x", color="red", label="真实数据")
ax.set_title("年资-薪水")
ax.set_xlabel("年资")
ax.set_ylabel("月薪(千)")
ax.set_xlim([0, 12])
ax.set_ylim([-60, 140])
ax.legend()
# 建立滑桿
ax_w = plt.axes([0.1, 0.15, 0.65, 0.03])
ax_b = plt.axes([0.1, 0.1, 0.65, 0.03])
slider_w = Slider(ax_w, \'w\', -100, 100, valinit=w_init)
slider_b = Slider(ax_b, \'b\', -100, 100, valinit=b_init)
# 滑桿事件
def update(val):
w = slider_w.val
b = slider_b.val
line.set_ydata(x * w + b)
fig.canvas.draw_idle()
slider_w.on_changed(update)
slider_b.on_changed(update)
# 显示互动图
plt.show()
-
1 -
-
noway
iT邦研究生 1 级 ‧
2025-02-26 20:08:03
谢谢!
修改