程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

简单学Python——做一个可交互的图(结合ipywidgets库)

hfteth 2024-12-23 09:23:08 技术文章 24 ℃

前面我们学过用matplotlib库做各种图,虽然做出来的图表样式很多,但是有一个不足:图片完全静止,不能交互,想让图片变化,那就要改代码。如果有一些控件能方便更改图片该多好啊。正好有这么一个库,可以实现以上功能,今天就把它介绍给大家:ipywidgets。

下面就用代码实现,今天的代码有些特殊,一些变量用的中文命名,这样大家更容易理解,也顺便挑战一下中文编程哈哈!

注意事项:可交互图是用widgets.interactive()方法实现的,括号里面第一项为函数,这次用的函数为自编画图函数,括号里的其他参数是给画图函数传递的参数,根据参数数据类型的不同,生成的控件样式也不同。

代码如下:

import numpy as np
import matplotlib.pyplot as plt
import ipywidgets as widgets

#显示汉字(否则汉字会显示乱码)
plt.rcParams["font.sans-serif"]=["SimHei"]
plt.rcParams["axes.unicode_minus"]=False

def pic(长,宽,标题显示,标题文本,线条颜色,x的系数,常数项):
    x=np.array([-5,-4,-3,-2,-1,0,1,2,3,4,5])
    y=x的系数*x*x-常数项
    plt.figure(figsize=(长, 宽))
    plt.plot(x,y,c=线条颜色)
    if 标题显示==True:
        plt.title(标题文本)

widgets.interactive((pic),  长=[6,8,10,12,14,16],宽=[3,4,5,6,7],
    标题显示=True, 标题文本="这是一个可交互的图",x的系数=[1,2,3], 
    常数项=(50,150,25), 线条颜色=["r", "g"])

效果如下,图片样式的变化很多,这里限于篇幅,只展示两幅:



Tags:

最近发表
标签列表