标签: scatter-plot

matplotlib 中无效的 rgba arg“#”

我无法弄清楚在尝试在 matplotlib 中创建散点图时如何使用颜色。

我正在尝试绘制具有不同颜色点的多个散点图来显示集群。

colors=['#12efff','#eee111','#eee00f','#e00fff','#123456','#abc222','#000000','#123fff','#1eff1f','#2edf4f','#2eaf9f','#22222f'
        '#eeeff1','#eee112','#00ef00','#aa0000','#0000aa','#000999','#32efff','#23ef68','#2e3f56','#7eef1f','#eeef11']
C=1
fig = plt.figure()
ax = fig.gca(projection='3d')
for fgroups in groups:
   X=[np.random.rand(50),np.random.rand(50),np.random.rand(50)]
   y=[np.random.rand(50),np.random.rand(50),np.random.rand(50)]
   Z=[np.random.rand(50),np.random.rand(50),np.random.rand(50)]
   C=(C+1) % len(colors)
   ax.scatter(X,Y,Z, s=20, c=colors[C], depthshade=True)
plt.show()
Run Code Online (Sandbox Code Playgroud)

我收到的错误如下:

ValueError: to_rgba: 无效的 rgba arg "#" to_rgb: 无效的 rgb arg "#" 无法将字符串转换为浮点数: #

看起来它将这些 RGB 参数视为浮点数。

然而,在 matplotlib 文档中,颜色是以这种风格编写的http://matplotlib.org/api/colors_api.html

我缺少什么?

python matplotlib scatter-plot

5
推荐指数
1
解决办法
1万
查看次数

X 轴上带有日期时间的 HighCharts 散点图未正确绘制值

我正在创建一个 highchart 散点图,其中 X 轴上包含纪元日期时间值,Y 轴上包含浮点值。问题是当我使用标签格式化程序将纪元时间值转换为可读时间值(“DD-MMM-YYYY”)时,在 X 轴上创建具有相同标题的多个标签,并且这些点不与垂直对齐X 轴上的刻度线。

我为它创建了一个 JSFiddle (链接)。我可以做什么来解决这个问题...

$(function () {
$('#container').highcharts({
    chart: {
        type: 'scatter',
        zoomType: 'xy'
    },
    title: {
        text: 'Errors'
    },
    subtitle: {
        text: 'Source: Temp Data'
    },
    xAxis: {
                allowDecimals: false,
                title: {
                    text: 'days',
                    scalable: false
                },
                type: 'datetime',
                labels: {
                    formatter: function () {
                            return Highcharts.dateFormat('%d-%b-%y', moment.unix(this.value));



                    }
                },
                tickPixelInterval: 100
            },
    yAxis: {
        title: {
            text: 'Weight (kg)'
        }
    },
    legend: {
        layout: 'vertical',
        align: 'left',
        verticalAlign: …
Run Code Online (Sandbox Code Playgroud)

datetime epoch scatter-plot highcharts

5
推荐指数
1
解决办法
6049
查看次数

Julia - 散点图:如何为每个类定义不同的颜色?

我正在尝试在 Julia 中绘制散点图,我在那里有 3 个课程。
我想为每个类定义不同的颜色。

我试过:

using(PyPlot)
pca = readdlm("pca1_2_fam.txt", header=false);
plot(pca[:,3], pca[:,4], color = pca[:,1])
Run Code Online (Sandbox Code Playgroud)

pca 文件如下:

名称1 208094 -0.00476681 0.00822032
名称1 514876 -0.00531507 -0.00721858
名称2 515043 0.00365503 -0.01794700 名称2
515066 0.00467896 0.00420396名称3
799073 0.00811660 -0.01903420 名称3 GLTGH40
0.00380041 0.00618471

在 R 中,我只是使用以下方法做到了这一点:

colnames(pca)=c("Breed","Animal","PCA1","PCA2")
qplot(PCA1,PCA2,data=pca,color=Breed,geom=c("point")) + theme(legend.position="none")   
Run Code Online (Sandbox Code Playgroud)

我想学习如何在 Julia 中做到这一点。

plot scatter-plot julia

5
推荐指数
1
解决办法
9735
查看次数

散点图标记大小与轴值成正比 - 为什么对于方面=“等于”,x 轴和 y 轴的像素数不同?

据我所知,我的问题与这篇文章密切相关。

我需要绘制一些标记大小与轴值严格成比例的数据。(已经在这里问过这个问题)。

我的方法如下:

  • 创建空散点图作为像素参考
  • 在左下角和右上角散布2个点
  • 将轴限制在这两点上
  • 用于transData.transform获取这两个点的像素值
  • 获取像素距离作为这两点的像素数差
  • (现在我有了距离与像素之比,用 ; 分散我的数据
    s=(size*dist_to_pix_ratio)**2,但这现在并不重要。)

问题是:当我完全按照我所描述的操作时,我得到 y 轴和 x 轴像素数的两个不同值。

这是一个最小的代码:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(7,7))
ax1 = fig.add_subplot(111, aspect='equal')

#setting up an empty scatterplot for pixel reference
xedges=[0.0, 1.0]
yedges=[0.0, 1.0]
emptyscatter=ax1.scatter(xedges, yedges, s=0.0)

#set axes limits
ax1.set_xlim(0.00,1.00)
ax1.set_ylim(0.00,1.00)   


# Calculating the ratio of pixel-to-unit
upright = ax1.transData.transform((1.0,1.0))
lowleft = ax1.transData.transform((0.0,0.0))
x_to_pix_ratio = upright[0] - lowleft[0]
y_to_pix_ratio = upright[1] - lowleft[1]

print x_to_pix_ratio, …
Run Code Online (Sandbox Code Playgroud)

python size matplotlib markers scatter-plot

5
推荐指数
0
解决办法
1565
查看次数

Matplotlib python 用每对 (x,y) 值的线连接两个散点图?

我在将散点图中的两组点相互连接时遇到问题,使得一条线(在本例中使用虚拟数据)将所有“前”点与相应的“后”点连接起来。'marker = 'o-' 参数不适用于 plt. 分散,但适用于 plt。阴谋。建议如何连接相应的值?谢谢并希望这个问题有意义!

import matplotlib.pyplot as plt
import numpy as np
x1 = ["pre"] * 4
x2 = ["post"] * 4
y1 = [0.1, 0.15, 0.13, 0.25]
y2 = [0.85, 0.76, 0.8, 0.9]
plt.scatter(x1, y1, color='y')
plt.scatter(x2, y2, color='g')
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib scatter-plot

5
推荐指数
1
解决办法
4842
查看次数

以绘图单位指定 matplotlib 散点大小

我想不使用点或像素而是使用绘图单位来指定散点大小。以下面为例:

import matplotlib.pyplot as plt
x = [0]
y = [0]
plt.scatter(x,y)
plt.show()
Run Code Online (Sandbox Code Playgroud)

这会产生如下图:

在此输入图像描述

比如说,如果我希望标记的半径恰好为 0.002 个绘图单位,该怎么办?据我了解,该s参数表示标记大小的区域(以磅为单位)。有没有办法直接以绘图单位提供它?如果不是,从绘图单位转换为点的最佳方法是什么,以便我可以将其传递到s参数中?

我还看到了一些其他问题,建议使用 aPatchCollection并简单地绘制具有指定半径的圆。我不想使用这种方法。我想避免广泛重写现有代码,而是将s参数与plt.scatter.

编辑

我尝试使用这个问题中的代码,它显然允许您根据绘图单位控制标记大小。但是我无法真正让它适用于我的基本情况:

import matplotlib.pyplot as plt
import numpy as np


class scatter():
    def __init__(self,x,y,ax,size=1,**kwargs):
        self.n = len(x)
        self.ax = ax
        self.ax.figure.canvas.draw()
        self.size_data=size
        self.size = size
        self.sc = ax.scatter(x,y,s=self.size,**kwargs)
        self._resize()
        self.cid = ax.figure.canvas.mpl_connect('draw_event', self._resize)

    def _resize(self,event=None):
        ppd=72./self.ax.figure.dpi
        trans = self.ax.transData.transform
        s =  ((trans((1,self.size_data))-trans((0,0)))*ppd)[1]
        if s != self.size:
            self.sc.set_sizes(s**2*np.ones(self.n))
            self.size = s …
Run Code Online (Sandbox Code Playgroud)

python matplotlib scatter-plot

5
推荐指数
0
解决办法
2875
查看次数

如何获取没有填充的标记,来自 matplotlib 3.3.1

matplotlib.pyplot.scatter有一个facecolors=None参数将使数据点标记看起来内部是空心的。我怎样才能获得相同的外观pandas.DataFrame.plot.scatter()

python data-visualization matplotlib scatter-plot pandas

5
推荐指数
1
解决办法
4435
查看次数

如何获取没有填充的联合图标记

matplotlib.pyplot.scatter()有一个facecolors=None参数将使数据点看起来内部是空心的。如何获得相同的外观seaborn.jointplot()

在早期版本的seaborn中也发现了相同的论点,但由于某种原因在最新版本(0.11)中被删除。

python scatter-plot seaborn jointplot jointgrid

5
推荐指数
1
解决办法
3183
查看次数

Seaborn lineplot - 连接散点图的点

我对 sns 线图和散点图有问题。基本上我想做的是连接散点图的点以呈现连接映射点的最近线。当面对具有相同 x 轴值的点时,线图会以某种方式改变宽度。我希望线图始终保持相同的实线。

代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

data = {'X': [13, 13, 13, 12, 11], 'Y':[14, 11, 13, 15, 20], 'NumberOfPlanets':[2, 5, 2, 1, 2]}
cts = pd.DataFrame(data=data)

plt.figure(figsize=(10,10))
sns.scatterplot(data=cts, x='X', y='Y', size='NumberOfPlanets', sizes=(50,500), legend=False)
sns.lineplot(data=cts, x='X', y='Y',estimator='max', color='red')
plt.show()
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

有任何想法吗?

编辑:

如果我尝试使用 pyplot 它也不起作用:代码:

plt.plot(cts['X'], cts['Y'])
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

我需要一条线,它连接最近的点(基本上是图像一上显示的,但具有相同的实线)。

python matplotlib scatter-plot line-plot seaborn

5
推荐指数
1
解决办法
9168
查看次数

在 matplotlib 中通过角度为线条分配颜色

我正在寻找一种方法,以响应线条角度的方式为 matplotlib 中的线条图指定颜色。这是我当前的代码:

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
horz = [[0.5,0.6,0.8],[0.1,0.8,0.9],[0.2,0.5,0.9]] 
vert = [[0.1,0.2,0.3],[0.05,0.1,0.15],[0.2,0.3,0.35]]

f = plt.figure(figsize=(6,6))
ax = plt.axes()

for column in range(0,len(horz)):
    x = np.array(horz[column])
    y = np.array(vert[column])
            
    #LINEAR TRENDLINE
    z = np.polyfit(horz[column], vert[column], 1)
    p = np.poly1d(z)
    ax.plot(horz[column],p(horz[column]),"-")
    plt.arrow(x=horz[column][-2],y=p(horz[column])[-2],dx=(horz[column][-1]-horz[column][-2]),dy=(p(horz[column])[-1]-p(horz[column])[-2]), shape='full', lw=.01,
              length_includes_head=True, head_width=.012, head_length=0.02, head_starts_at_zero=False, overhang = 0.5)
            
    #FIG SETTINGS
    plt.xlim([0, 1])
    plt.ylim([0.1,0.5])
    ax.set_title('Title',
             fontsize = 14)
Run Code Online (Sandbox Code Playgroud)

就像现在一样,颜色是随机分配的

这里的想法是,如果线的角度为 0 度,则它将位于给定梯度的一端,如果线的角度为 90 度,则位于另一端。此外,我希望将线条长度视为颜色的强度。因此,如果线条短,它会更接近白色,如果线条长,它会更接近渐变的原始颜色。

python colors matplotlib scatter-plot

5
推荐指数
1
解决办法
476
查看次数