python散点图密度颜色_Matplotlib:根据相对于其他数据的密度对散点图着色

我一直在尝试做同样的事情,基于同一个早期的帖子,我想我只是想出来了!诀窍是使用matplotlib.colors.Normalize()来定义一个刻度,然后根据一些数据集(xnorm,ynorm)对其进行加权:import numpy as np

import matplotlib.pyplot as plt

import matplotlib.colors as mplc

import matplotlib.cm as cm

from scipy.stats import gaussian_kde

def kdeplot(x,y,xnorm,ynorm):

xy = np.vstack([x,y])

z = gaussian_kde(xy)(xy)

wt = 1.0*len(x)/(len(xnorm)*1.0)

norm = mplc.Normalize(vmin=0, vmax=8/wt)

cmap = cm.gnuplot

idx = z.argsort()

x, y, z = x[idx], y[idx], z[idx]

args = (x,y)

kwargs = {'c':z,'s':10,'edgecolor':'','cmap':cmap,'norm':norm}

return args, kwargs

# (x1,y1) is some data set whose density map coloring you

# want to scale to (xnorm,ynorm)

args,kwargs = kdeplot(x1,y1,xnorm,ynorm)

plt.scatter(*args,**kwargs)

我使用反复试验来优化我的特定数据和颜色映射选择的规范化。Here's我的数据看起来像是按自身比例缩放的;here's我的数据缩放为一些比较数据(在图片的底部)。在

我不确定这种方法是否完全通用,但它在我的例子中是有效的:我知道我的数据和比较数据在参数空间的相似区域,它们都有高斯散射,所以我可以使用一个由数据点数量确定的朴素的线性缩放,结果是在视觉上给出了正确的想法。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当您使用matplotlib绘制散点图时,可以使用参数c指定散点的颜色。下面是一个示例代码,使用Pythonmatplotlib绘制散点图并修改散点的颜色。 ```python import matplotlib.pyplot as plt # 生成数据 x = [1, 2, 3, 4, 5] y = [2, 3, 1, 5, 4] # 绘制散点图,并指定颜色 plt.scatter(x, y, c='r') # 显示图形 plt.show() ``` 在上面的代码中,我们通过调用`scatter`函数绘制了一个散点图。`scatter`函数有很多可选参数,其中`c`参数指定散点的颜色。在这个例子中,我们将颜色设置为红色。 如果您想使用其他颜色,可以使用字符串表示法(例如'r'表示红色)或RGB元组表示法(例如(0.5, 0.2, 0.1)表示一种深棕色)。例如,要将散点的颜色更改为蓝色,您可以这样做: ```python plt.scatter(x, y, c='b') ``` 您也可以根据数据点的值来设置颜色。例如,如果您想根据y值设置颜色,可以使用以下代码: ```python plt.scatter(x, y, c=y) ``` 在这个例子中,我们将c参数设置为y,这意味着颜色将根据y的值而变化。由于y的值介于1到5之间,因此散点的颜色也将在这个范围内变化。 ### 回答2: Python使用matplotlib库可以轻松绘制散点图,并且可以通过修改点的颜色来增加图像的可读性和美观度。 首先,我们需要导入matplotlib库中的pyplot模块,用于绘制图像。 ```python import matplotlib.pyplot as plt ``` 接下来,我们创建两个列表,分别存储散点图的横坐标和纵坐标数据。 ```python x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] ``` 然后,使用scatter()函数绘制散点图。该函数的第一个参数是横坐标数据,第二个参数是纵坐标数据。 ```python plt.scatter(x, y) ``` 默认情况下,散点图上的点是蓝色的。如果我们想要修改点的颜色,可以使用c参数指定一个颜色颜色可以是一个单个的字符、一个具体的颜色名称、或者一个表示颜色的数字。 ```python plt.scatter(x, y, c='red') ``` 此外,我们还可以使用colormap参数指定一组颜色,让散点图上的点呈现渐变的色彩变化。例如,我们可以使用'cool' colormap来绘制渐变的蓝色散点图。 ```python plt.scatter(x, y, c=y, cmap='cool') ``` 最后,通过调用show()函数显示绘制好的散点图。 ```python plt.show() ``` 综上所述,以上代码示例展示了如何使用matplotlib库绘制散点图,并修改点的颜色。无论是单色还是渐变色,通过修改颜色可以增加图像的可读性和美观度。 ### 回答3: 使用Python中的matplotlib库可以很方便地绘制散点图,并且可以通过修改点的颜色来实现。下面是一个示例代码: ``` import matplotlib.pyplot as plt # 输入散点数据 x = [1, 2, 3, 4, 5] y = [2, 4, 5, 5, 7] # 绘制散点图 plt.scatter(x, y) # 修改点的颜色 colors = ['red', 'blue', 'green', 'yellow', 'purple'] # 定义点的颜色,这里使用了五种颜色 plt.scatter(x, y, c=colors) # 显示图形 plt.show() ``` 在上述代码中,首先定义了散点图数据,即x和y的值。然后使用`plt.scatter()`函数绘制散点图,并且没有指定点的颜色,因此默认使用了蓝色。接下来,定义了一个长度为5的颜色列表,每个点对应一个颜色。最后,再次使用`plt.scatter()`函数,通过设置`c`参数为颜色列表,来对散点图中的点进行着色。最后,使用`plt.show()`函数显示图形。 运行上述代码,将会得到一个散点图,其中每个点的颜色分别为红色、蓝色、绿色、黄色和紫色。你也可以根据需要对点的颜色进行自定义。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值