下面的代码运行后,可以通过左侧的三组单选钮来设置正弦曲线的频率、颜色和线型,并根据新的设置来绘制正弦曲线,每次单击图形下方的按钮,由系统随机设置频率、颜色和线型并绘制新图形,同时根据随机选择的值来设置三组单选钮的选中项。

from random import choice

import numpy as np

import matplotlib.pyplot as plt

from matplotlib.widgets import RadioButtons, Button

t = np.arange(0.0, 2.0, 0.01)

s0 = np.sin(2*np.pi*t)

s1 = np.sin(4*np.pi*t)

s2 = np.sin(8*np.pi*t)

fig, ax = plt.subplots()

l, = ax.plot(t, s0, lw=2, color='red')

plt.subplots_adjust(left=0.3)

#定义允许的几种频率,并创建单选钮组件

#其中[0.05, 0.7, 0.15, 0.15]表示组件在窗口上的归一化位置和大小

axcolor = 'lightgoldenrodyellow'

rax = plt.axes([0.05, 0.7, 0.15, 0.15], axisbg=axcolor)

radio = RadioButtons(rax, ('2 Hz', '4 Hz', '8 Hz'))

hzdict = {'2 Hz': s0, '4 Hz': s1, '8 Hz': s2}

def hzfunc(label):

ydata = hzdict[label]

l.set_ydata(ydata)

plt.draw()

radio.on_clicked(hzfunc)

#定义允许的几种颜色,并创建单选钮组件

rax = plt.axes([0.05, 0.4, 0.15, 0.15], axisbg=axcolor)

colors = ('red', 'blue', 'green')

radio2 = RadioButtons(rax, colors)

def colorfunc(label):

l.set_color(label)

plt.draw()

radio2.on_clicked(colorfunc)

#定义允许的几种线型,并创建单选钮组件

rax = plt.axes([0.05, 0.1, 0.15, 0.15], axisbg=axcolor)

styles = ('-', '--', '-.', 'steps', ':')

radio3 = RadioButtons(rax, styles)

def stylefunc(label):

l.set_linestyle(label)

plt.draw()

radio3.on_clicked(stylefunc)

#定义按钮单击事件处理函数,并在窗口上创建按钮

def randomFig(event):

#随机选择一个频率,同时设置单选钮的选中项

hz = choice(tuple(hzdict.keys()))

hzLabels = [label.get_text() for label in radio.labels]

radio.set_active(hzLabels.index(hz))

l.set_ydata(hzdict[hz])

#随机选择一个颜色,同时设置单选钮的选中项

c = choice(colors)

radio2.set_active(colors.index(c))

l.set_color(c)

#随机选择一个线型,同时设置单选钮的选中项

style = choice(styles)

radio3.set_active(styles.index(style))

l.set_linestyle(style)

#根据设置的属性绘制图形

plt.draw()

axRnd = plt.axes([0.5, 0.015, 0.2, 0.045])

buttonRnd = Button(axRnd, 'Random Figure')

buttonRnd.on_clicked(randomFig)

#显示图形

plt.show()

温馨提示:单击文章顶部作者名字旁边浅蓝色的“Python小屋”进入公众号,关注后可以查看更多内容!

Python数据可视化案例一:自定义曲线频率、颜色与线型相关推荐

  1. Python数据可视化案例三:使用Slider组件调整曲线参数

    首先更正一个地方,昨天的文章Pythonic:递归.回溯等5种方法生成不重复数字整数中最后一段代码的注释中不小心把"排列"写成了"组合",抱歉抱歉! 今天的内容 ...

  2. Python数据可视化案例二:动态更新数据

    在开发与数据监测和数据可视化有关的系统时,我们会需要根据最新的数据对图形进行更新.下面的代码模拟了这种情况,单击Start按钮时会更新数据并重新绘制图形使得曲线看上去在移动一样,单击Stop按钮则停止 ...

  3. python数据可视化案例销售数据_3-5 用python进行数据可视化 朝阳医院销售案例

    本篇是3-2-2数据分析文章的扩展版.spoonhead:3-3-2 Python数据分析实战第一步​zhuanlan.zhihu.com 本文在原文章的基础上提出了问题4-问题8的5个新问题,并用m ...

  4. python数据可视化案例2017年6省gdp_吴裕雄 数据挖掘与分析案例实战(5)——python数据可视化...

    # 饼图的绘制 # 导入第三方模块 import matplotlib import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']= ...

  5. python数据可视化案例 淘宝粽子_Python分析淘宝月饼销售数据,哪种最受欢迎?排第一的你想不到...

    距离国庆中秋8天的假期没几天了,朋友圈各家大厂都开始秀自家定制的中秋月饼礼盒,假期要走亲访友的手里也少不了要提一盒月饼. 每年中秋节到,总会去姥姥那里送中秋,并买上各种各样的月饼,那个时候科技并不怎么 ...

  6. python数据可视化案例销售数据_Python数据可视化教程之Matplotlib实现各种图表实例...

    前言 数据分析就是将数据以各种图表的形式展现给领导,供领导做决策用,因此熟练掌握饼图.柱状图.线图等图表制作是一个数据分析师必备的技能.Python有两个比较出色的图表制作框架,分别是Matplotl ...

  7. python数据可视化案例 淘宝粽子_Python可视化对比分析淘宝低价人群和匿名用户的淘宝连衣裙数据...

    1.我是一个低价人群用户 上周发表文章<一个匿名用户的淘宝"连衣裙"大观>后,交流群里面很热闹地讨论了起来,小伙伴们都在秀自己的淘宝连衣裙搜索价格,相较于小伙伴们搜索出 ...

  8. python爬虫数据可视化_适用于Python入门者的爬虫和数据可视化案例

    本篇文章适用于Python小白的教程篇,如果有哪里不足欢迎指出来,希望对你帮助. 本篇文章用到的模块: requests,re,os,jieba,glob,json,lxml,pyecharts,he ...

  9. python数据可视化散点图案例_Python数据可视化—散点图_python 数据可视化

    Python数据可视化-散点图 PS: 翻了翻草稿箱, 发现居然存了一篇去年2月的文章...虽然naive,还是发出来吧... 本文记录了Python中的数据可视化--散点图scatter, 令x作为 ...

最新文章

  1. 最全的Centos6.10详细安装Oracle 11G R2图文教程
  2. Spring Cloud Stream消费失败后的处理策略(一):自动重试
  3. 沉浸式技术immersive technology
  4. Apache Shiro实现用户登录功能
  5. [机械]“重工业面临两大危机”——向文波(三一重工股份有限公司执行总裁)
  6. 边缘计算 ai_在边缘探索AI!
  7. 最实用DOS命令参数的中文详解
  8. Python3 Tcp未发送/接收完数据即被RST处理办法
  9. python中排序从小到大_Python实现对特定列表进行从小到大排序操作示例
  10. mysql中名词解析
  11. VS2008 sp1中文版下载地址
  12. 读书笔记:《产品经理手册》(第4版)
  13. android版本下载京东,手机京东历史版本
  14. MATLAB中神经网络工具箱的使用
  15. [半决赛魔咒] 那些罚失点球的人,恰恰是那些有勇气站在点球前的人。。
  16. 小程序、容器、SCF、直播加速…最全面的云端架构技术揭秘
  17. win7 正式版安装成功,贴图得瑟一下
  18. 09高考零分作文精选
  19. LabVIEW使用VI Server的时候出现1003错误
  20. PMP中工具与技术归类

热门文章

  1. mysql怎么换引擎_如何更换MySQL默认存储引擎
  2. 鸿蒙历程和路标图,华为鸿蒙OS:为生态而生,亦为生态所累
  3. 插入排序算法 java_排序算法实现-插入排序(Java版本)
  4. eclipse中自定义videoview类_android控件之VideoView建立自己的播放器
  5. Oracle 非dba用户 使用 set autotrace 功能
  6. 代码刚提交暂存区,组长突然要我把新增代码 Commit另一分支怎么办?
  7. jsp点击文字改变颜色_这样给图片添加上文字、诗词、歌词,超吸睛
  8. Redis缓存穿透、缓存雪崩、并发问题分析与解决方案
  9. 判断字符串最后两个字符
  10. js判断数组中有没有指定元素