标签: scatter-plot

matplotlib:修补补丁的位置(或:圆圈的set_xy)

受此示例的启发,我正在尝试编写一个小的matplotlib程序,该程序允许用户动态地在散点图中拖放数据点.与使用条形图(因此允许拖动矩形)的示例相比,我的目标是与其他补丁实现相同,例如圆形(任何与矩形相比更具散射图兼容性的补丁) ).但是我仍然坚持更新我的补丁的位置.虽然a Rectangle提供了一个功能,但set_xy我找不到直接模拟CirlceEllipse.获得圆的位置对于矩形也不那么简单,但是可以通过获得边界框来实现.现在缺少的部分是找到一种方法来更新补丁的位置.任何关于如何实现这一点的提示都会很棒!当前最小的工作示例如下所示:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches

class DraggablePatch:

  def __init__(self, patch):
    self.patch = patch
    self.storedPosition = None
    self.connect()

  def getPosOfPatch(self, marker):
    ext = marker.get_extents().get_points()
    x0 = ext[0,0]
    y0 = ext[0,1]
    x1 = ext[1,0]
    y1 = ext[1,1]
    return 0.5*(x0+x1), 0.5*(y0+y1)

  def connect(self):
    'connect to all the events we need'
    self.cidpress  = self.patch.figure.canvas.mpl_connect('button_press_event',  self.onPress)
    self.cidmotion = self.patch.figure.canvas.mpl_connect('motion_notify_event', self.onMove)

  def onPress(self, event):
    'on button press …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib scatter-plot

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

使用D3过渡方法和散点图数据

所以我是D3的新手,并且一般都使用JavaScript.所以我一直在关注一些目前正在使用创建基本散点图的源代码的教程.现在我的问题是当我添加更多数据集时,如何使用transition()方法移动圆圈?我希望能够设置按钮,当用户按下它们时,它会使用相应的数据集激活transition()方法.我在转换上阅读的教程仅显示了单个矩形的转换,并且手动完成,没有数据,也没有多个项目

//Width and height
var w = 900;
var h = 600;
var padding = 30;


//Static dataset
var dataset = [
    [50, 30], [300, 75], [123, 98], [70, 40], [247, 556],
    [410, 12], [475, 44], [25, 67], [85, 21], [220, 88],
    [600, 150]
];          

//Create scale functions
var xScale = d3.scale.linear()
    .domain([0, d3.max(dataset, function(d) { return d[0]; })])
    .range([padding, w - padding * 2]);

var yScale = d3.scale.linear()
    .domain([0, d3.max(dataset, function(d) { return d[1]; })])
    .range([h - padding, padding]); …
Run Code Online (Sandbox Code Playgroud)

transition scatter-plot d3.js

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

如何使Matplotlib散点图作为一组透明?

我正在使用Matplotlib制作一些散点图(python 3.4.0,matplotlib 1.4.3,在Linux Mint 17上运行).很容易为每个点单独设置alpha透明度; 有没有办法将它们设置为一个组,以便来自同一组的两个重叠点不会改变颜色?

示例代码:

import matplotlib.pyplot as plt
import numpy as np

def points(n=100):
    x = np.random.uniform(size=n)
    y = np.random.uniform(size=n)
    return x, y
x1, y1 = points()
x2, y2 = points()
fig = plt.figure(figsize=(4,4))
ax = fig.add_subplot(111, title="Test scatter")
ax.scatter(x1, y1, s=100, color="blue", alpha=0.5)
ax.scatter(x2, y2, s=100, color="red", alpha=0.5)
fig.savefig("test_scatter.png")
Run Code Online (Sandbox Code Playgroud)

结果输出:

在此输入图像描述

但我想要更像这样的东西:

在此输入图像描述

我可以通过保存为SVG并在Inkscape中手动分组,然后设置透明度来解决,但我真的更喜欢我可以编码的东西.有什么建议?

python transparency matplotlib scatter-plot

13
推荐指数
4
解决办法
2万
查看次数

用hexbin过度绘制多组数据

我正在对一个庞大且非常密集的数据集进行一些KMeans聚类,我正在尝试找出可视化聚类的最佳方法.

在2D中,看起来像hexbin会做得很好,但我无法在同一个数字上过度绘制集群.我想分别在每个簇上使用hexbin,每个簇使用不同的颜色映射,但由于某些原因,这似乎不起作用.图像显示了当我尝试绘制第二组和第三组数据时得到的结果.

关于如何解决这个问题的任何建议? 在此输入图像描述

在一些摆弄之后,我能够用Seaborn的kdeplot来做到这一点

在此输入图像描述

python cluster-analysis matplotlib scatter-plot seaborn

13
推荐指数
1
解决办法
1140
查看次数

如何在gridExtra中通过arrange.grid创建的图表周围添加边框,其中包含一组ggplot2散点图

我正在使用以下代码:

# Libs
require(ggplot2); require(gridExtra); require(grid)

# Generate separate charts
chrts_list_scts <- list()

# Data
data("mtcars")

# A
chrts_list_scts$a <- ggplot(mtcars) +
  geom_point(size = 2, aes(x = mpg, y = disp,
                           colour = as.factor(cyl))) +
  geom_smooth(aes(x = mpg, y = disp),
              method = "auto") +
  xlab("MPG") +
  ylab("Disp") +
  theme_bw() +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        legend.position = "none")

# B
chrts_list_scts$b <- ggplot(mtcars) +
  geom_point(size = 2, aes(x = mpg, y = drat,
                           colour = as.factor(cyl))) +
  geom_smooth(aes(x …
Run Code Online (Sandbox Code Playgroud)

r border scatter-plot ggplot2 gridextra

13
推荐指数
1
解决办法
3913
查看次数

默认数据集示例mtcars和ggplot2中的“错误:将连续值提供给离散刻度”

我正在尝试使用以下代码在此处(sthda.com)复制示例

# Change point shapes and colors manually
ggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl)) +
  geom_point() + 
  geom_smooth(method=lm, se=FALSE, fullrange=TRUE)+
  scale_shape_manual(values=c(3, 16, 17))+ 
  scale_color_manual(values=c('#999999','#E69F00', '#56B4E9'))+
  theme(legend.position="top")
Run Code Online (Sandbox Code Playgroud)

该网页上的示例说该代码应产生以下结果:

情节

但是,当我在R中运行它时,出现以下错误:

“错误:连续值提供给离散刻度”

有人知道这段代码可能出什么问题吗?还是为什么我得到的结果与示例不同?

如果有人可以运行示例代码并告诉我他们是否遇到相同的错误,我将不胜感激。

r scatter colors scatter-plot ggplot2

13
推荐指数
2
解决办法
3万
查看次数

Matplotlib中的散点图轮廓

我有一个庞大的散点图(~100,000点),我在matplotlib中生成.每个点在此x/y空间中都有一个位置,我想生成包含总点数的某些百分位数的轮廓.

matplotlib中是否有一个函数可以执行此操作?我已经研究过contour(),但是我必须用这种方式编写自己的函数.

谢谢!

python matplotlib scatter-plot contour

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

Pandas scattermatrix中的类标签

之前已经问过这个问题,分散矩阵中的多个数据,但没有得到答案.

我想制作一个散点矩阵,就像在pandas文档中一样,但是对于不同的类使用不同颜色的标记.例如,我希望某些点以绿色显示,而其他点则以蓝色显示,具体取决于其中一列(或单独的列表)的值.

这是使用Iris数据集的示例.点的颜色代表虹膜的种类 - Setosa,Versicolor或Virginica.

iris scattermatrix与类标签

pandas(或matplotlib)有办法制作这样的图表吗?

python matplotlib scatter-plot pandas

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

创建matplotlib散点图例大小相关

我正在寻找一种方法来包含描述散点图中点的大小的(matplotlib)图例,因为这可能与另一个变量有关,就像在这个基本示例中一样:

import numpy as np
import matplotlib.pyplot as plt

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
a2 = 400*np.random.rand(N)

plt.scatter(x, y, s=a2, alpha=0.5)
plt.show()
Run Code Online (Sandbox Code Playgroud)

(灵感来自:http: //matplotlib.org/examples/shapes_and_collections/scatter_demo.html)

所以在传说中a2,根据s描述符,理想情况下很少有与0-400(变量)大小相对应的点scatter.

python matplotlib legend scatter-plot

12
推荐指数
4
解决办法
8856
查看次数

如何更改海底散点图中的专色边缘颜色?

我使用seaborn创建了一个散点图:

import seaborn as sns
sns.set(style="ticks", color_codes=True)

g=sns.scatterplot(x="length", y="coverage", data=df, hue = 'Products', edgecolors=None, alpha = 0.7)
g.set(yscale="log")
plt.xlabel("Length(bp)")
plt.ylabel("Coverage")
plt.legend(loc = 'lower right')
plt.savefig('ATN_plot.png',dpi = 600)
Run Code Online (Sandbox Code Playgroud)

原始数据(部分):

contig  length  coverage    pathway Products
53  1230    2423    stigmatellin    Yes
58  1195    885 curacin Yes
65  1161    598 jamaicamide Yes
68  1159    8001    jamaicamide Yes
79  1113    1423    curacin Yes
105 1042    1106    stigmatellin    Yes
727 666 223 HSAF (heat stable antifungal factor)    Yes
787 655 37  curacin Yes
791 654 13 …
Run Code Online (Sandbox Code Playgroud)

python scatter-plot seaborn

12
推荐指数
3
解决办法
3286
查看次数