给散点图加legend图例

2024-03-27 15:50
文章标签 图例 legend 散点图

本文主要是介绍给散点图加legend图例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先从文件导入数据,并进行格式化为numpy矩阵

import numpy as npdef file2array(filename):file = open(filename)file_lines = file.readlines()numberOfLines = len(file_lines)dataArray = np.zeros((numberOfLines, 3))labels = []index = 0for line in file_lines:line = line.strip() # 参数为空时,默认删除开头、结尾处空白符(包括'\n', '\r',  '\t',  ' ')formLine = line.split('\t')dataArray[index,:] = formLine[0:3]labels.append((formLine[-1]))index += 1label_id = []dic = {}index = 1for i in range(len(labels)):x = dic.get(labels[i], -1)label_id.append(x)if (label_id[i] == -1):label_id[i] = indexdic[labels[i]] = indexindex += 1return dataArray, label_iddata, labels = file2array('datingTestSet.txt')

然后开始对数据进行分标签绘图,开始是这样的

%matplotlib inline
import matplotlib.pyplot as plt
plt.scatter(data[:,0], data[:,1], c=15*np.array(labels))

在这里插入图片描述


然后给他添加legend
思路是把三种不同标签的图分开,分成三个子图,画在一张图里面

def scatterLegend(data, labels, x, y):type1 = []type2 = []type3 = []for i in range(len(labels)):if labels[i] == 1:type1.append(np.array(data[i]))elif labels[i] == 2:type2.append(np.array(data[i]))else:type3.append(np.array(data[i]))type1 = np.array(type1)type2 = np.array(type2)type3 = np.array(type3)g1 = plt.scatter(type1[:, x], type1[:, y], c='red')g2 = plt.scatter(type2[:, x], type2[:, y], c='yellow')g3 = plt.scatter(type3[:, x], type3[:, y], c='blue')plt.legend(handles=[g1, g2, g3], labels=['not at all', 'a small doses', 'a large doses'])scatterLegend(data, labels, 0, 1)

结果变成了这样
在这里插入图片描述

这篇关于给散点图加legend图例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/852644

相关文章

使用matplotlib绘制散点图、柱状图和饼状图-学习篇

一、散点图 Python代码如下: num_points = 100x = np.random.rand(num_points) #x点位随机y = np.random.rand(num_points) #y点位随机colors = np.random.rand(num_points) #颜色随机sizes = 1000 * np.random.rand(num_points) # 大

透析SPFA算法(图例讲解)

SPFA算法是Bellman-Ford的队列优化,所以先介绍Bellman-Ford算法。        Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的。这时候,就需要使用其他的算法来求解最短路径,Bellman-

【python 散点图】美观画时间序列散点图

经常遇到时间序列的数据,用散点图可以直观的查看数据的分布情况。matplotlib模块的pyplot有画散点图的函数,但是该函数要求x轴是数字类型。pandas的plot函数里,散点图类型’scatter’也要求数字型的,用时间类型的会报错。 最终摸索出画散点图的简单办法。可以使用pyplot的plot_date()画散点图。 # -*- coding: utf-8 -*-"""spee

日系编曲:吉他贝斯识谱 吉他六线谱常见符号表 贝斯谱图例

认识吉他贝斯谱 吉他和贝斯谱是记录音乐的一种方式,对于学习和演奏这两种乐器的人来说非常重要。以下是对吉他和贝斯谱的认识: 一、吉他谱 六线谱: 这是最常见的吉他谱记谱方式。六线谱由六条平行的线组成,代表吉他的六根弦,从下往上依次是吉他的最细弦(1 弦)到最粗弦(6 弦)。 线上的数字表示手指应按在该弦的品格位置。例如,数字 “3” 表示在该弦的第 3 品格处按弦。 同时,六线

基于Leaflet Legend的图例数据筛选实践-以某市教培时空分布为例

目录 前言 一、关于Leaflet.Legend组件 1、Legend组件的主要参数 2、相关参数 二、Legend图例可视化控制 1、违规教培信息的管理 2、违规培训信息时空可视化及图例渲染控制   3、成果展示 三、总结 前言         在很多的地理时空分析系统中,我们经常会遇到一些需求。比如在地图中,我们会结合内容的分类来进行图例的展示,而图例不仅

echarts 饼图图例展示名称及数值/百分比

legend: {// 图例位置设置为右上角right: '0%',top: '23%',// 图例布局方向为垂直orient: 'vertical',itemGap: 25,formatter: function (name) {let data = option.series[0].data;// console.log(data, 'data')let total = 0;let tar

python可视化-散点图

散点图可以了解数据之间的各种相关性,如正比、反比、无相关、线性、指数级、 U形等,而且也可以通过数据点的密度(辅助拟合趋势线)来确定相关性的强度。另外,也可以探索出异常值(在远超出一般聚集区域的数据点称)。  1、加载数据 import pandas as pdfrom sklearn.datasets import load_irisimport warnings# 禁用所有警告信息

【Matplotlib】(二)图例legend

Matplotlib 的 Legend 图例就是为了帮助我们展示每个数据对应的图像名称,更好的让读者认识到你的数据结构。 如图,红色标注部分就是 Legend 图例。 在之前的一篇文章 Matplotlib 系列之「绘制函数图像」 中已经细讲过 Matplotlib 的绘制过程以及结构分析,希望读者能先去了解一下。 接着上一次的代码继续讲解 Legend 图例如何展示,以及有哪些常用的特

R-散点图

> x1=round(rnorm(10,mean=77,sd=9))> x2=round(rnorm(10,mean=85,sd=20))> plot(x1,x2) 如下图 > plot(x1,x2,main = "analysis",xlab = "mathermatical analysis",ylab="linear algebra",xlim = c(0,100),ylim = c

echarts地图修改图例

要求:根据数据排名,前三名点亮橙色,其他地区根据数值分配不同颜色,并且要加上单位 效果图如下: 实现方法如下: visualMapFormat(list) {//先将数据按从大到小的顺序排列//当list长度为1时,点亮这1个//当list长度为1-3时,点亮第一个//当list长度为3-8时,判断并列第三名的个数,当第三名超过2个时,只有前2名是橙色,否则点亮前三名//当list长度大于8时