Charon的python数据可视化3(散点图)

最近都在忙数学竞赛的事情,看书刷题,刷卷子,然后加上一些老师实验室的工作要完成,也是挺忙的,不过很喜欢这样的生活,忙碌而有意义

今天介绍的是用matplotlib画散点图,散点图调用的函数呢就“scatter()”也是和之前的折线图还有柱状图类似,就是涉及到参数设置方面会有一些不同
scatter()函数里面的参数主要有这些:x,y,s,c,marker,camp,norm,vmin,vmax,alpha,linwidths,edgecolor,plotnonfinite
这里我们介绍几个常用的:
x,y: 这个就不必多说,可以是标量,也可以是元组,就是x,y坐标值
s: 是点的大小,也可以自行设置
c: 颜色,可以用RGB,也可以用随机函数进行设置
marker: 标记的形状,此处应该摆张表见下
在这里插入图片描述
当然,marker的设置不止这些,在官方的文档中提供了另一种方式marker=(numsides,style,angle)
numsides:边的条数
style: 风格,只有1,2,3,4四个数字可调
angle: 旋转角度,指整个图形的旋转角度

在下面的实例中会给大家演示使用效果~
camp: colormap的实例或注册名称,默认为None
norm: 数据亮度,范围在,0-1 可以自行设置,默认同样为None
alpha: 前几篇文章里都出现过,透明度,范围在0-1
edgecolor: 边缘颜色,可自行设置,若不设置,与主颜色一致

下面就是具体的一些实例了

import matplotlib.pyplot as plt
import numpy as np
#导入所需模块
plt.style.use('dark_background')
#设置背景风格,这个风格我设的纯属好玩。。
plt.figure(figsize=(8,6),dpi=80)
#画布设置
x=np.random.rand(60)*4
y=np.random.rand(60)*4
colors=np.random.rand(60)
area=np.pi*(15*np.random.rand(50))**2
#x,y,colors,area的设置,关于这个函数的一些用法我后面还会再更新一篇常用的一些函数
plt.scatter(x,y,s=area,c=colors,alpha=0.8,marker=(3,0,50))
#敲重点了!!!!!
#我这里透明度设置的0.8,然后最重要的那个marker这里是三条边,风格设置的0(其他三个可以自己试试),角度转了90度
plt.xlabel("X")
plt.ylabel("Y")
plt.title("RANDOM INT",color="r")
#x,y的坐标轴名称&title
plt.legend("x1")
#图标名称

运行结果如下
在这里插入图片描述
不知道是丑还是丑还是丑…
下一个

import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(8,8),dpi=90)
x=np.random.rand(60)*2
y=np.random.rand(60)*2
colors=np.random.rand(60)
area=np.pi*(15*np.random.rand(50))**2
plt.scatter(x,y,s=area,c=colors,alpha=0.7,marker=r"$\clubsuit$")
#不同点较大的就是这里的marker符号是用mathtext渲染字符串敲的
#这是个三叶草
plt.xlabel("x1")
plt.ylabel("y1")
plt.title("This is scatter",color="b")
plt.legend("lucky")

结果如下:
在这里插入图片描述
第三个:

import matplotlib.pyplot as plt
import numpy as np
plt.style.use('ggplot')
np.random.seed(100000)
x = np.arange(0.0, 50.0, 2.0)
y = x ** 1.3 + np.random.rand(*x.shape) * 30.0
s = np.random.rand(*x.shape) * 800 

plt.scatter(x, y, s, c="r", alpha=0.5, marker='o',
            label="charon")
            #颜色设置为红色,label设置为博主的名字。。。
plt.xlabel("Blog number")
plt.ylabel("Level of appearance")
#可见Charon的颜值和博主的博文数量是息息相关的hhh
plt.legend(loc='upper left')
plt.show()

让我们一起来看看是什么样的关系吧
在这里插入图片描述
看来要努力发博文了~
最后看一个python官方的例子吧

import matplotlib.pyplot as plt
import numpy as np

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


N = 100
r0 = 0.6
x = 0.9 * np.random.rand(N)
y = 0.9 * np.random.rand(N)
area = (20 * np.random.rand(N))**2  # 0 to 10 point radii
c = np.sqrt(area)
r = np.sqrt(x * x + y * y)
area1 = np.ma.masked_where(r < r0, area)
area2 = np.ma.masked_where(r >= r0, area)
plt.scatter(x, y, s=area1, marker='^', c=c)
plt.scatter(x, y, s=area2, marker='o', c=c)
# Show the boundary between the regions:
theta = np.arange(0, np.pi / 2, 0.01)
plt.plot(r0 * np.cos(theta), r0 * np.sin(theta))

plt.show()

结果如下:
在这里插入图片描述
这个里面还是有很多值得我们去学习的,首先他的代码写的很整洁,代码本就是逻辑思维的一种体现,所以往后敲代码写代码的时候一定要提醒自己,写的当然是越整洁越简单越好,整洁体现你的思路清晰,简单体现你的思维灵活。
其实编程之于传统的表格图表制作软件最大的不同就是在于这些参数的设置,从某种层次上说这是具有创造性的,还有就是大量数据的处理上,这个时候是计算机在帮你做事,而不是自己在用计算机做事。
我们一起进步吧~
一起加油!!!!
你的点赞是我的动力奥~~~~

参考:官方案例(最后一个图)
marker图表:https://blog.csdn.net/TeFuirnever/article/details/99672296?utm_source=app

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值