我正在尝试为散点图中的群集着色,并且使用两种不同的方法进行管理。

在第一个中,我迭代绘制每个群集,在第二个中,我一次绘制所有数据,并根据它们的标签[0、1、2、3、4]为其着色。

我对进入example1和example3的结果感到满意,但我不明白为什么在根据标签为群集着色时,为什么颜色变化如此之大,而不是反复绘制每个群集。

另外,为什么第二个群集(尽管始终带有标签" 1")在example1和example3中具有不同的颜色?

1

2

3

4

5

6

7import matplotlib.pyplot as plt

plt.style.use('fivethirtyeight') #irrelevant here, but coherent with the examples=)

fig, ax = plt.subplots(figsize=(6,4))

for clust in range(kmeans.n_clusters):

ax.scatter(X[kmeans.labels_==clust],Y[kmeans.labels_==clust])

ax.set_title("example1")`

1

2

3plt.figure(figsize = (6, 4))

plt.scatter(X,Y,c=kmeans.labels_.astype(float))

plt.title("example2")

(我知道我可以为第二种方法显式定义一个颜色图,但是在示例1中找不到能重现结果的任何颜色)

这是一个最小的工作示例

1

2

3

4

5

6

7

8

9

10

11

12import matplotlib.pyplot as plt

import pandas as pd

plt.style.use('fivethirtyeight') #irrelevant here, but coherent with the examples=)

X=pd.Series([1, 2, 3, 4, 5, 11, 12, 13, 14, 15])

Y=pd.Series([1,1,1,1,1,2,2,2,2,2])

clusters=pd.Series([0,0,0,0,0,1,1,1,1,1])

fig, ax = plt.subplots(figsize=(6,4))

for clust in range(2):

ax.scatter(X[clusters==clust],Y[clusters==clust])

ax.set_title("example3")

1

2

3plt.figure(figsize = (6, 4))

plt.scatter(X,Y, c=clusters)

plt.title("example4")

当您在群集上循环并绘制scatter而未指定任何颜色时,将使用活动属性循环程序的默认颜色(颜色循环)。活动属性循环程序在rcParams中定义。通过使用的样式进行设置;在您的情况下,使用'fivethirtyeight'

1

2print(plt.rcParams["axes.prop_cycle"])

> cycler('color', ['#008fd5', '#fc4f30', '#e5ae38', '#6d904f', '#8b8b8b', '#810f7c'])

此图形的前两种颜色("#008fd5","#fc4f30")是您在图中看到的颜色。

当您将scatter与clusters用作颜色参数时,这些值将通过颜色图映射到颜色。如果未指定颜色图,它将采用rcParam中定义的默认颜色图。

1

2print(plt.rcParams["image.cmap"])

>"viridis"

'fivethirtyeight'样式没有定义任何特殊的颜色图,因此默认值将保持不变。 (事实上??,您在图片中观察到的颜色与viridis不同,这是由于存在其他一些仍处于活动状态的代码未在问题中显示的事实。)

在这一点上,我需要开始翻译。我想您的问题确实是如何使用颜色与颜色循环相同的颜色图来获得单个散点图。预定义的颜色图均未包含第五十八个循环器颜色。因此,您可以通过从循环中获取颜色来手动定义该颜色图,

1

2import matplotlib.colors as mcolors

cmap = mcolors.ListedColormap(plt.rcParams['axes.prop_cycle'].by_key()['color'])

现在,您需要一种索引颜色表的方法,因为您有离散的群集。

1

2n = len(clusters.unique())

norm = mcolors.BoundaryNorm(np.arange(n+1)-0.5, n)

当然,这需要颜色图中的颜色数量大于或等于类的数量-此处就是这种情况。

放在一起,(我添加了另一个类别,以使其更具说明性)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

import matplotlib.colors as mcolors

plt.style.use('fivethirtyeight') #relevant here!!

X=pd.Series([1, 2, 3, 4, 5, 11, 12, 13, 14, 15])

Y=pd.Series([1,1,1,1,1,2,2,2,2,2])

clusters=pd.Series([0,0,0,0,0,1,1,1,1,2])

cmap = mcolors.ListedColormap(plt.rcParams['axes.prop_cycle'].by_key()['color'])

n = len(clusters.unique())

norm = mcolors.BoundaryNorm(np.arange(n+1)-0.5, n)

plt.figure(figsize = (6, 4))

sc = plt.scatter(X,Y, c=clusters, cmap=cmap, norm=norm)

plt.colorbar(sc, ticks=clusters.unique())

plt.title("example4")

plt.show()

是的,我之前玩过色彩映射表,所以保存图片时可能有一个非默认的活动图。 这是一个很好的答案,您完全理解了我的意思。 很抱歉,我不清楚您的色彩周期,但我对色环一无所知。 我将尝试修改问题以使其更清楚。

python散点图密度颜色_关于matplotlib:Python散点图:如何使用与colorcycle具有相同颜色的色图...相关推荐

  1. python 颜色_如何使用python中matplotlib库分析图像颜色

    用代码分析图像可能很困难.你如何使代码"理解"图像的上下文? 通常,使用AI分析图像的第一步 是找到主要颜色.在如何使用python中matplotlib库分析图像颜色中,我们将使 ...

  2. 用python绘制熊猫图案_在matplotlib中绘制熊猫日期

    我有一个固定宽度的数据文件,其中包含日期,但当我试图绘制数据时,日期没有正确地显示在x轴上. 我的文件看起来像2014-07-10 11:49:14.377102 45 2014-07-10 11:5 ...

  3. python实现数据可视化_使用Matplotib python实现数据可视化

    python实现数据可视化 I Feel: 我觉得: In today's digital world data has become as important as air. Machines &a ...

  4. python数据科学手册_小白入门Python数据科学

    前言 本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据 ...

  5. python语言基础实验_实验二Python语言基础函数包练习.doc

    实验二Python语言基础函数包练习 实验 Python语言基础函数包练习:1208 学号: 实验目的 1.Python语言包,如math.NumPySciPy和Matplotlib等函数包的使用实验 ...

  6. python cmap_Python cmap包_程序模块 - PyPI - Python中文网

    cmapy 在python中使用matplotlib colormaps和opencv. matplotlib提供了很多nice colormaps.cmapy将这些颜色映射公开为颜色列表,这些颜色列 ...

  7. python办公自动化博客_自动化办公 Python 操控 Word

    虽然Word不好用, 但还必须得用它, python-docx是专门用于编辑Word文档的一个工具库, 它有两大用途, 自动化生成word文档 and 自动化修改文档 python word 1. 自 ...

  8. python变量定义大全_详解python变量与数据类型

    这篇文章我们学习 Python 变量与数据类型 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问.在 Python 中 变量命名规定,必须是大小写英文,数字 ...

  9. python哪个方向简单_现在学Python,哪个方向最简单?哪个方向最吃香 ?

    " 我想学Python,但是学完Python后都能干啥 ?" " 现在学Python,哪个方向最简单?哪个方向最吃香?" " -- " 相信 ...

最新文章

  1. LeetCode实战:反转字符串
  2. 一个CV算法工程师的小反思
  3. 凡客诚品成都研发中心招聘.net开发经理
  4. pandas基础(part2)--DataFrame
  5. mysql 5.5.46_MySQL 5.5.46源码安装
  6. 【Flink】Flink SQL 一个流 输出 2 次
  7. centos7本地安装mysql数据库_在CentOS7系统上安装MySQL数据库
  8. 快速傅里叶变换学习笔记(更新中)
  9. 10.28-11.1-广州软件所-实习工作日记
  10. jquery 获取 选中的radio的值
  11. golang 将数据导入excel
  12. PTA:复数求模的类模板
  13. 能和机器划拳,猜中你的表情,百度开了一家超好玩的“AI体验店”
  14. php多次请求只执行最后一次,取消重复请求,只让最后一次请求通过
  15. Oracle - LOB(大对象数据类型)
  16. c语言为什么运行不出数据,程序运行后可以输入数据,但是之后为什么没有显示?...
  17. matlab设计倒频系统,OFDM技术仿真(MATLAB代码)
  18. solr 5.5 java_solr5.5.5的搭载IK和java客户端
  19. Moon River
  20. 火狐浏览器安装EditThisCookie插件

热门文章

  1. 一)关羽和赵云在敌人心目中的对比
  2. python实战:学籍注册程序
  3. 阿里云盘网页版登录地址
  4. PS里的抠图工具都有哪些?各类工具的适用情景
  5. 用 ScrapySharp 下载天涯图片
  6. 使用pyppeteer淘宝登录
  7. 设置goland的主题、字体和背景颜色
  8. Redis 数据类型 Strings 类型详解
  9. 正则表达式中反斜杠的意义
  10. 审计不报培训班,不买辅导书,一次性通过注会综合考试,能是真的么?