前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >散点自定义符号——在散点图中创建自定义椭圆符号。

散点自定义符号——在散点图中创建自定义椭圆符号。

作者头像
裴来凡
发布于 2022-05-28 07:53:16
发布于 2022-05-28 07:53:16
54700
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from matplotlib import colors as mcolors, path
from matplotlib.collections import RegularPolyCollection
import matplotlib.pyplot as plt
from matplotlib.widgets import Lasso
import numpy as np


class Datum:
    colorin = mcolors.to_rgba("red")
    colorout = mcolors.to_rgba("pink")

    def __init__(self, x, y, include=False):
        self.x = x
        self.y = y
        if include:
            self.color = self.colorin
        else:
            self.color = self.colorout


class LassoManager:
    def __init__(self, ax, data):
        self.axes = ax
        self.canvas = ax.figure.canvas
        self.data = data

        self.Nxy = len(data)

        facecolors = [d.color for d in data]
        self.xys = [(d.x, d.y) for d in data]
        self.collection = RegularPolyCollection(
            6, sizes=(100,),
            facecolors=facecolors,
            offsets=self.xys,
            transOffset=ax.transData)

        ax.add_collection(self.collection)

        self.cid = self.canvas.mpl_connect('button_press_event', self.onpress)

    def callback(self, verts):
        facecolors = self.collection.get_facecolors()
        p = path.Path(verts)
        ind = p.contains_points(self.xys)
        for i in range(len(self.xys)):
            if ind[i]:
                facecolors[i] = Datum.colorin
            else:
                facecolors[i] = Datum.colorout

        self.canvas.draw_idle()
        self.canvas.widgetlock.release(self.lasso)
        del self.lasso

    def onpress(self, event):
        if self.canvas.widgetlock.locked():
            return
        if event.inaxes is None:
            return
        self.lasso = Lasso(event.inaxes,
                           (event.xdata, event.ydata),
                           self.callback)
        # acquire a lock on the widget drawing
        self.canvas.widgetlock(self.lasso)


if __name__ == '__main__':

    np.random.seed(19680801)

    data = [Datum(*xy) for xy in np.random.rand(100, 2)]
    ax = plt.axes(xlim=(0, 1), ylim=(0, 1), autoscale_on=False)
    ax.set_title('iamge')

    lman = LassoManager(ax, data)

    plt.show()
    import sys
import numpy as np
import matplotlib.pyplot as plt


def press(event):
    print('press', event.key)
    sys.stdout.flush()
    if event.key == 'x':
        visible = xl.get_visible()
        xl.set_visible(not visible)
        fig.canvas.draw()

# Fixing random state for reproducibility
np.random.seed(19680801)


fig, ax = plt.subplots()

fig.canvas.mpl_connect('key_press_event', press)

ax.plot(np.random.rand(12), np.random.rand(12), 'go')
xl = ax.set_xlabel('easy come, easy go')
ax.set_title('image')
plt.show()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Pandas-25.可视化
Pandas-25.可视化 用matplotlib库的plot()方法实现简单的可视化 df = pd.DataFrame(np.random.randn(10,4),index=pd.date_ra
悠扬前奏
2019/05/29
6580
你知道怎么用Pandas绘制带交互的可视化图表吗?
之前咱们介绍过Pandas可视化图表的绘制《『数据可视化』一文掌握Pandas可视化图表》,不过它是依托于matplotlib,因此无法进行交互。但其实,在Pandas的0.25.0版本之后,提供了一些其他绘图后端,其中就有我们今天要演示的主角基于Bokeh!
可以叫我才哥
2021/09/24
3.9K0
Pandas可视化详解 | 轻松玩转Pandas(12)
数据分析的结果不仅仅只是你来看的,更多的时候是给需求方或者老板来看的,为了更直观地看出结果,数据可视化是必不可少的一个环节。这里带大家来看下一些常用的图形的画法。
abs_zero
2018/09/25
2.7K0
Pandas可视化详解 | 轻松玩转Pandas(12)
Python数据科学(九)- 使用Pandas绘制统计图表1.信息可视化
因为人对图像信息的解析效率比文字更高,所以可视化可以使数据更为直观,便于理解,使决策变得高效,所以信息可视化就显得尤为重要。
Python攻城狮
2018/08/23
9630
Python数据科学(九)- 使用Pandas绘制统计图表1.信息可视化
干货案例 | Pandas数据可视化怎么做?
数据可视化可以让我们很直观的发现数据中隐藏的规律,察觉到变量之间的互动关系,可以帮助我们更好的给他人解释现象,做到一图胜千文的说明效果。
朱小五
2020/04/27
2.7K0
干货案例 | Pandas数据可视化怎么做?
pandas 图形可视化大全
plot()的参数设置subplots=True即可自动对dataframe数据生成子图的可视化图形。
Python数据科学
2023/08/29
2700
pandas 图形可视化大全
Pandas绘图功能
可视化是用来探索性数据分析最强大的工具之一。Pandas库包含基本的绘图功能,可以让你创建各种绘图。Pandas中的绘图是在matplotlib之上构建的,如果你很熟悉matplotlib你会惊奇地发现他们的绘图风格是一样的。
用户3577892
2020/11/12
1.8K0
Seaborn + Pandas带你玩转股市数据可视化分析
在日常生活中,可视化技术常常是优先选择的方法。尽管在大多数技术学科(包括数据挖掘)中通常强调算法或数学方法,但是可视化技术也能在数据分析方面起到关键性作用。
数据STUDIO
2021/06/24
6.9K0
Matplotlib可视化没那么难:7种常用图表最全绘制攻略来了!
导读:绘图是数据分析工作中的重要一环,是探索过程的一部分。Matplotlib是当前用于数据可视化的最流行的Python包之一,本文主要介绍数据可视化分析工具:Matplotlib。
IT阅读排行榜
2021/06/01
6.9K0
Matplotlib可视化没那么难:7种常用图表最全绘制攻略来了!
『数据可视化』一文掌握Pandas可视化图表
今天简单介绍一下Pandas可视化图表的一些操作,Pandas其实提供了一个绘图方法plot(),可以很方便的将Series和Dataframe类型数据直接进行数据可视化。
可以叫我才哥
2021/08/05
8.4K0
Python数据可视化的10种技能
如果你想要用 Python 进行数据分析,就需要在项目初期开始进行探索性的数据分析,这样方便你对数据有一定的了解。其中最直观的就是采用数据可视化技术,这样,数据不仅一目了然,而且更容易被解读。同样在数据分析得到结果之后,我们还需要用到可视化技术,把最终的结果呈现出来。
MachineLP
2019/05/26
2.8K0
数据分析之Pandas快速图表可视化各类操作详解
一般我们做数据挖掘或者是数据分析,再或者是大数据开发提取数据库里面的数据时候,难免只能拿着表格数据左看右看,内心总是希望能够根据自己所想立马生成一张数据可视化的图表来更直观的呈现数据。而当我们想要进行数据可视化的时候,往往需要调用很多的库与函数,还需要数据转换以及大量的代码处理编写。这都是十分繁琐的工作,确实只为了数据可视化我们不需要实现数据可视化的工程编程,这都是数据分析师以及拥有专业的报表工具来做的事情,日常分析的话我们根据自己的需求直接进行快速出图即可,而Pandas正好就带有这个功能,当然还是依赖matplotlib库的,只不过将代码压缩更容易实现。下面就让我们来了解一下如何快速出图。
fanstuck
2024/01/25
4962
数据分析之Pandas快速图表可视化各类操作详解
Pandas可视化综合指南:手把手从零教你绘制数据图表
数据可视化本来是一个非常复杂的过程,但随着Pandas数据帧plot()函数的出现,使得创建可视化图形变得很容易。
昱良
2019/09/24
2K0
Pandas可视化综合指南:手把手从零教你绘制数据图表
数据导入与预处理-拓展-pandas可视化
关于pandas的可视化的用法还有很多,这里不再拓展,但还是建议使用matplotlib,seaborn等库完成绘图。
用户2225445
2022/11/12
3.2K0
数据导入与预处理-拓展-pandas可视化
数据可视化干货:使用pandas和seaborn制作炫酷图表(附代码)
导读:我们介绍过用matplotlib制作图表的一些tips,感兴趣的同学可以戳→纯干货:手把手教你用Python做数据可视化(附代码)。matplotlib是一个相当底层的工具。你可以从其基本组件中组装一个图表:数据显示(即绘图的类型:线、条、框、散点图、轮廓等)、图例、标题、刻度标记和其他注释。
前端皮皮
2021/05/18
5.6K0
数据可视化干货:使用pandas和seaborn制作炫酷图表(附代码)
Python 数据可视化,常用看这一篇就够了
如果你想要用 Python 进行数据分析,就需要在项目初期开始进行探索性的数据分析,这样方便你对数据有一定的了解。其中最直观的就是采用数据可视化技术,这样,数据不仅一目了然,而且更容易被解读。
全栈程序员站长
2022/09/07
2.1K0
Pandas 高级教程——数据可视化
Pandas 提供了强大的数据可视化工具,可以帮助你更好地理解数据、发现模式和进行探索性数据分析。本篇博客将深入介绍 Pandas 中的数据可视化功能,并通过实例演示如何创建各种图表和图形。
Echo_Wish
2023/12/26
3600
五分钟入门数据可视化
在数据科学中,有多种工具可以进行可视化。在本文中,我(毛利)展示了使用Python来实现的各种可视化图表。
润森
2019/11/15
2.8K0
Python-Seaborn 17个超好看图表绘制
Seaborn是一个基于matplotlib且数据结构与pandas统一的统计图制作库。Seaborn框架旨在以数据可视化为中心来挖掘与理解数据。
DataCharm
2021/02/22
3.5K0
Python-Seaborn 17个超好看图表绘制
Python数据分析实战(3)Python实现数据可视化
数据可视化是指将数据放在可视环境中、进一步理解数据的技术,可以通过它更加详细地了解隐藏在数据表面之下的模式、趋势和相关性。
cutercorley
2020/08/31
4.6K0
推荐阅读
相关推荐
Pandas-25.可视化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档