首页 > 其他分享 >Matplotlib 可视化50图:散点图(1)

Matplotlib 可视化50图:散点图(1)

时间:2022-11-28 19:46:25浏览次数:65  
标签:category plt 字体大小 散点图 Matplotlib 50 fontsize 颜色 midwest

导读

本系列将持续更新50个matplotlib可视化示例,主要参考Selva PrabhakaranMachineLearning Plus上发布的博文:Python可视化50图

定义

关联图是查看两个事物之间关系的图像,它能够展示出一个事物随着另一个事物是如何变化的。关联图的类型有:折线图,散点图,相关矩阵等。

关联图

散点图

散点图

测试

  • 导入需要使用的库
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
  • plt.scatter
#绘制超简单的散点图:变量x1与x2的关系

#定义数据
x1 = np.random.randn(10) #取随机数
x2 = x1 + x1**2 - 10

#确定画布 - 当只有一个图的时候,不是必须存在
plt.figure(figsize=(8,4))

#绘图
plt.scatter(x1,x2 #横坐标,纵坐标
            ,s=50 #数据点的尺寸大小
            ,c="red" #数据点的颜色
            ,label = "Red Points"
           )
#装饰图形
plt.legend() #显示图例

plt.show() #让图形显示

result

  • 例子
# 除了两列X之外,还有标签y的存在
# 在机器学习中,经常使用标签y作为颜色来观察两种类别的分布的需求

X = np.random.randn(10,2)  # 10行,2列的数据集
y = np.array([0,0,1,1,0,1,0,1,0,0])

colors = ["red","black"]  # 确立颜色列表
labels = ["Zero","One"]  # 确立标签的类别列表

for i in range(X.shape[1]):
    plt.scatter(X[y==i,0],
               X[y==i,1],
               c=colors[i],
               label = labels[i])

# 在标签中存在几种类别,就需要循环几次,一次画一个颜色的点

plt.legend()
plt.show()

result

实战

数据

# 导入数据
midwest = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv")

# 探索数据
midwest.shape  
midwest.head()
midwest.columns

标签

midwest['category']

category

# 提取标签中的类别
categories = np.unique(midwest['category'])  # 去掉所有重复的项

categories  # 查看使用的标签,如下图

categories

颜色

  • plt.cm.tab10()

用于创建颜色的十号光谱,在 matplotlib 中,有众多光谱供我们选择:https://matplotlib.org/stable/tutorials/colors/colormaps.html 。可以在plt.cm.tab10()中输入任意浮点数,来提取出一种颜色。光谱tab10中总共只有十种颜色,如果输入的浮点数比较接近,会返回类似的颜色。这种颜色会以元祖的形式返回,表示为四个浮点数组成的RGBA色彩空间或者三个浮点数组成的RGB色彩空间中的随机色彩。

color1 = plt.cm.tab10(5.2)

color1  # 四个浮点数组成的一个颜色

color1

绘图

# 预设图像的各种属性
large = 22; med = 16; small = 12
params = {'axes.titlesize': large,   # 子图上的标题字体大小
          'legend.fontsize': med,   # 图例的字体大小
          'figure.figsize': (16, 10), # 图像的画布大小
          'axes.labelsize': med,   # 标签的字体大小
          'xtick.labelsize': med,  # x轴上的标尺的字体大小
          'ytick.labelsize': med,  # y轴上的标尺的字体大小
          'figure.titlesize': large}  # 整个画布的标题字体大小
plt.rcParams.update(params)  # 设定各种各样的默认属性
plt.style.use('seaborn-whitegrid')  # 设定整体风格
sns.set_style("white")  # 设定整体背景风格

# 准备标签列表和颜色列表
categories = np.unique(midwest['category'])
colors = [plt.cm.tab10(i/float(len(categories)-1)) for i in range(len(categories))]

# 建立画布
plt.figure(figsize=(16, 10)   # 绘图尺寸
           , dpi=100          # 图像分辨率
           , facecolor='w'    # 图像的背景颜色,设置为白色,默认也是白色
           , edgecolor='k'    # 图像的边框颜色,设置为黑色,默认也是黑色
          )

# 循环绘图
for i, category in enumerate(categories):
    plt.scatter('area', 'poptotal', 
                data=midwest.loc[midwest.category==category, :], 
                s=20, c=np.array(colors[i]).reshape(1,-1), label=str(category))

# 对图像进行装饰
# plt.gca() 获取当前的子图,如果当前没有任何子图的话,就创建一个新的子图
plt.gca().set(xlim=(0, 0.12), ylim=(0, 80000))  # 控制横纵坐标的范围
plt.xticks(fontsize=12)  # 坐标轴上的标尺的字的大小
plt.yticks(fontsize=12)
plt.ylabel('Population',fontsize=22)  # 坐标轴上的标题和字体大小
plt.xlabel('Area',fontsize=22)
plt.title("Scatterplot of Midwest Area vs Population", fontsize=22)  # 整个图像的标题和字体的大小
plt.legend(fontsize=12)  # 图例的字体大小
plt.show()

result


欢迎Star -> 学习目录 <- 点击跳转

国内链接 -> 学习目录 <- 点击跳转


本文由mdnice多平台发布

标签:category,plt,字体大小,散点图,Matplotlib,50,fontsize,颜色,midwest
From: https://www.cnblogs.com/swindler/p/16933384.html

相关文章

  • shiro550
    0x00前言结束了cc链的学习,准备学习一手shiro反序列化漏洞嘛,这个漏洞其实出现了蛮久了是这两年攻防才把它逐渐的提上来,也大概知道这个漏洞的原理就是加迷是用的aes而且密钥......
  • AcuPF850系列电能质量治理设备在医院的应用
    行业背景医院是救死扶伤、挽救生命的重要场所,可靠的电能是医生开展治疗工作的保障,因此医院对供电的连续性和可靠性有着非常严格的要求。近年来医院中新增加的医疗设备如:X光......
  • MacOS|matplotlib 无法显示中文 解决办法
    matplotlib无法显示中文解决办法画图时,中文无法正常显示,如图下载字体点击这里获取字体提取码:wnby查看字体路径在python环境中执行以下指令importmatplotlib......
  • Python对豆瓣电影Top250并进行数据分析并可视化
    数据获取翻页操作观察可知,我们只需要修改start参数即可headers字段headers中有很多字段,这些字段都有可能会被对方服务器拿过来进行判断是否为爬虫通过headers中的User-A......
  • rac dg活动复制完成后,备库节点1查询数据库状态时报错ORA-00204、ORA-00202,且告警日志
    问题描述:racdg活动复制完成后,备库节点1查询数据库状态时报错ORA-00204、ORA-00202,且告警日志中出现ORA-15025、ORA-27041异常,如下所示:说明:racdg磁盘组采用的是多路径+ud......
  • VH6501模板工程介绍(一)
    VH6501硬件结构1.式样1.正向有5个灯,用来指示干扰的触发状态,干扰类型(数字或模拟),通道通信以及设备状态。2.两个DB9接口(公头male和母头female),这是CAN或CANFD通道,单节点干......
  • spring gateway路由出现503、404错误解决方法
    查资料发现在网关出现503错误是因为全局过滤器没有加载(ReactiveLoadBalancerClientFilter),只需要将含有这个过滤器的依赖进行导入就行了<dependency><groupId>org.......
  • 关于 SAP Cloud Connector 500 failed to sign the Certificate 的错误消息
    有朋友向我询问一个关于SAPCloudConnector的问题,错误消息如下:500failedtosigntheCloudConnectorCertificateforsubaccountXXX.VerifyConfigurationand......
  • 68-72.图标的作用,初识matplotlib,简单绘图
            -------------------------------------------------------------------------------------------------------------------------------------......
  • Matplotlib基础教程之折线图
    1.数据可视化的意义俗话说,一图胜千言。数据可视化便是将数据通过图形化的方式展现出来,它更加便于我们观察数据蕴含的的规律,洞察了数据蕴含的规律后,我们能够做更好的商业决......