python中画散点图

示例代码:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D data = np.random.randint(0, 255, size=[40, 40, 40]) x, y, z = data[0], data[1], data[2]
ax = plt.subplot(111, projection='3d') # 创建一个三维的绘图工程
# 将数据点分成三部分画,在颜色上有区分度
ax.scatter(x[:10], y[:10], z[:10], c='y') # 绘制数据点
ax.scatter(x[10:20], y[10:20], z[10:20], c='r')
ax.scatter(x[30:40], y[30:40], z[30:40], c='g') ax.set_zlabel('Z') # 坐标轴
ax.set_ylabel('Y')
ax.set_xlabel('X')
plt.show()

今天想在散点图的某些特定的点外面画圆圈标记,从下面的文章找到一些灵感,只要在原来的散点图上面给指点添加相应的标志,设置其透明度就可以实现该想法。

顺便复习下散点图的用法。

大家平时为了直观地显示数据的分布情况,在画散点图的时候,简单地把数据点用圆点标出来,像这样:


这样:

 
 
还有这样:

然而今天我想给大家展示的散点图,或许没有那么直观地反映数据的分布情况,不够实用,但是真的很美很艺术,每个的点的颜色和大小都不一样,形状也是多变的。比如五角星的散点图:


圆点的散点图: 

Y形的散点图: 

等等还有很多,那么这些漂亮的形状是怎么画出来的呢?其实代码很简单:

  1.  
    from numpy import *;
  2.  
     
  3.  
    N = 50 # 点的个数
  4.  
    x = np.random.rand(N) * 2 # 随机产生50个0~2之间的x坐标
  5.  
    y = np.random.rand(N) * 2 # 随机产生50个0~2之间的y坐标
  6.  
    colors = np.random.rand(N) # 随机产生50个0~1之间的颜色值
  7.  
    area = np.pi * (15 * np.random.rand(N))**2 # 点的半径范围:0~15
  8.  
    # 画散点图
  9.  
    plt.scatter(x, y, s=area, c=colors, alpha=0.5, marker=(9, 3, 30))
  10.  
    plt.show()

这里用到一个matplotlib.pyplot子库中画散点图的函数 
matplotlib.pyplot.scatter(x, y, s=20, c=None, marker='o', 
cmap=None, norm=None, vmin=None, vmax=None, alpha=None, 
linewidths=None, verts=None, edgecolors=None, hold=None, 
data=None, **kwargs)
 
这个函数接收的参数很多,有默认值的平时也不需要我们指定,是可选的,这次我们用到的除了基本的x ,y参数,还有c,s,alpha和marker,c就是为点指定的颜色数组,s是点的面积大小,alpha是点的颜色的透明度,marker是指定点标记的形状。在例子里指定透明度为0.5,c和s是随机生成的,我们要改变的是marker的值,marker有很多值可供选择,下表展示了在例子代码的基础上,改变marker的值后的效果:

marker result
”.”
”,”
“o”
“v”
“^”
“<”
“>”
“1”
“2”
“3”
“4”
“8”
“s”
“p”
“*”
“h”
“H”
“+”
“x”
“D”
“d”
“_”
“None” 没错就是什么都没有。。。
“$…$”
(numsides, style, angle)
eg:(9,0, 30) 
注:numsides是边的个数,
angle是旋转角度,
style只有0,1,2,3四个值
(numsides, style, angle)
eg:(9,1, 30)
(numsides, style, angle)
eg:(9,2, 30)
(numsides, style, angle)
eg:(9,3, 30)
注:此时numsides和angle的值自动被忽略

…… 
这么多种点的形状符号够我们用了吧~以后想用哪种查一下就好啦~

 

python中画散点图的更多相关文章

  1. python中如何给散点图上面的特定点做标记

    今天想在散点图的某些特定的点外面画圆圈标记,从下面的文章找到一些灵感,只要在原来的散点图上面给指点添加相应的标志,设置其透明度就可以实现该想法. 顺便复习下散点图的用法. 大家平时为了直观地显示数据的 ...

  2. python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)

    最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...

  3. Vue中使用ECharts画散点图加均值线与阴影区域

    [本文出自天外归云的博客园] 需求 1. Vue中使用ECharts画散点图 2. 在图中加入加均值线 3. 在图中标注出阴影区域 实现 实现这个需求,要明确两点: 1. 知道如何在vue中使用ech ...

  4. python—networkx:在一张图中画出多个子图

    通过plt.subplot能够在一张图中画出多个子图 #coding: utf-8 #!/usr/bin/env python """ Draw a graph with ...

  5. python中利用matplotlib绘图可视化知识归纳

    python中利用matplotlib绘图可视化知识归纳: (1)matplotlib图标正常显示中文 import matplotlib.pyplot as plt plt.rcParams['fo ...

  6. Python中matplotlib模块解析

    用Matplotlib绘制二维图像的最简单方法是: 1.  导入模块 导入matplotlib的子模块 import matplotlib.pyplot as plt import numpy as ...

  7. 数字的可视化:python画图之散点图sactter函数详解

    最近开始学习python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...

  8. 使用scatter画散点图

    刚开始接触Python,照着例子写的代码,百度注释的. from numpy import * import matplotlib import matplotlib.pyplot as plt im ...

  9. 炼数成金数据分析课程---10、python中如何画图

    炼数成金数据分析课程---10.python中如何画图 一.总结 一句话总结: 主要matplotlib库,pandas中也可以画一些基础图 大纲+实例快速学习法 1.matplotlib的最简单画图 ...

随机推荐

  1. lnmp架构、mysql的安装、php的安装、nginx相关

    1.lnmp架构 2.mysql的安装: mysql5.6自动安装脚本: yum install perl-Data-Dumper.x86_64 libaio.x86_64 libaio-devel. ...

  2. Django ---- blog项目学习所得

    一.登录功能 1.采用ajax 提交form表单的方式 2.后台生成随机验证码,登录时提交验证码 3.用PLI库生成随机验证码,置于session中,登录时与前台提交的code进行upeer()的验证 ...

  3. MySQL数据库一

    MySQL的基本命令: 进入数据库: mysql -u [username] -p[password]   (注:-u 和 用户名之间可以有空格 -p和password之间无空格)  mysql -u ...

  4. input的焦点事件

    <body> <h3>表单中文本框的focus和blur事件</h3> <input id="txtest" type="tex ...

  5. whmcs语言汉化路径

    前台语言访问文件夹/lang,后台语言文件放入/admin/lang

  6. 【BZOJ4521】【CQOI2016】手机号码

    感觉数位dp好恶心…… 原题: 人们选择手机号码时都希望号码好记.吉利.比如号码中含有几位相邻的相同数字.不含谐音不 吉利的数字等.手机运营商在发行新号码时也会考虑这些因素,从号段中选取含有某些特征的 ...

  7. 每天进步一点点-一切皆对象/一次编写,到处运行/bean工厂

    只要这个配置文件一写,其他所有的java类都可以用 用法1.直接在类中getBeans,然后调用beans的方法 用法2.将这些bean进行注入,基于xml的注入<property name=& ...

  8. 几张简单的terraform flow 图——可以快速了解terraform的使用

    以下是一个简单额terraform flow 我们快速的了解terraform 的使用,基于流程 参考图 参考架构 简单使用流程 说明 从上图我们可以看出terraform 的使用 tf 内容编写 定 ...

  9. zeebe docker-compose 运行(包含monitor)

    环境准备 docker-compose 文件 version: "3" services: db: image: oscarfonts/h2 container_name: zee ...

  10. oracle-db安装

    在LINUX平台上手动创建多个实例(oracle11g) http://blog.csdn.net/sunchenglu7/article/details/39676659 安装完桌面与数据库软件后, ...