标签: scatter-plot

d3.js散点图 - 缩放/拖动边界,缩放按钮,重置缩放,计算中位数

我用缩放/平移功能构建了一个d3.js散点图.你可以在这里看到完整的东西(点击"在新窗口中打开"以查看整个内容):http: //bl.ocks.org/129f64bfa2b0d48d27c9

有一些我无法弄清楚的功能,如果有人能指出我正确的方向,我会爱上它:

  1. 我想将X/Y缩放/平移边界应用于该区域,以便您不能将其拖动到某个点(例如零)以下.
  2. 我也开始创建谷歌地图样式+/-缩放按钮,没有任何成功.有任何想法吗?

更不重要的是,还有一些领域我已经找到了解决方案,但它非常粗糙,所以如果你有更好的解决方案,请告诉我:

  1. 我添加了一个"重置缩放"按钮,但它只删除了图形并在其位置生成了一个新图形,而不是实际缩放对象.理想情况下,它应该实际重置缩放.
  2. 我编写了自己的函数来计算X和Y数据的中位数.但是我确信必须有更好的方法来使用d3.median这样做,但我无法弄清楚如何使其工作.

    var xMed = median(_.map(data,function(d){ return d.TotalEmployed2011;}));
    var yMed = median(_.map(data,function(d){ return d.MedianSalary2011;}));
    
    function median(values) {
        values.sort( function(a,b) {return a - b;} );
        var half = Math.floor(values.length/2);
    
        if(values.length % 2)
            return values[half];
        else
            return (parseFloat(values[half-1]) + parseFloat(values[half])) / 2.0;
    };
    
    Run Code Online (Sandbox Code Playgroud)

JS的一个非常简化(即旧版)的版本如下.您可以在https://gist.github.com/richardwestenra/129f64bfa2b0d48d27c9#file-main-js找到完整的脚本.

d3.csv("js/AllOccupations.csv", function(data) {

    var margin = {top: 30, right: 10, bottom: 50, left: 60},
        width = 960 - margin.left - margin.right,
        height = 500 - margin.top - margin.bottom; …
Run Code Online (Sandbox Code Playgroud)

javascript zoom scatter-plot drag d3.js

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

两个具有相同X和Y轴的图

显示的图表由以下R代码生成.

png("test.png")
plot(data[,4],data[,3],type='l',col="green")
par(new=TRUE)
plot(data[,4],data[,2],type='l',col="red")
dev.off()
Run Code Online (Sandbox Code Playgroud)

两个图的Y轴范围不同,如图所示,它被覆盖.有人可以帮助为这两个图设置相同的Y轴范围.

在此输入图像描述

r set scatter-plot

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

在matplotlib中,在散点图中的数据点周围绘制一个光滑的多边形

我有一堆带有两组数据的交叉图,并且一直在寻找一种matploltib方法,用平滑的多边形轮廓突出显示它们的绘图区域.

目前我只使用Adobe Illustrator并修改已保存的情节,但这并不理想.例:在此输入图像描述

我很感激任何指针/链接到示例.

干杯

python polygon matplotlib scatter-plot polygons

6
推荐指数
1
解决办法
5413
查看次数

如何使用Gnuplot中格式为"#aabbcc"的数据列中声明的颜色对点进行着色?

我正在使用Gnuplot根据包含5个项目的数据制作散点图:

index, name, x value, y value, color (#12e335)
Run Code Online (Sandbox Code Playgroud)

每个条目的颜色都不同.有没有办法让我的数据点(x,y)的颜色得到数据中列出的颜色?

是否有可能采用这种格式的颜色(#aabb12),还是需要更改格式为特定的gnuplot?点颜色与数据中指定的颜色相同非常重要,因为我稍后会使用相同的颜色作为饼图(而不是gnuplot).

任何帮助,将不胜感激.

gnuplot colors scatter-plot

6
推荐指数
1
解决办法
2155
查看次数

使用颜色参数时更改R {graphics}中的Alpha值

我很习惯在ggplot2中这样做,我很难弄清楚如何使用R基础图形指定alpha值,而plot()中的col =参数用于为分类指定颜色类型变量.

使用虹膜数据集(虽然在这种情况下,为什么我们需要更改alpha值并不是真的有意义)

data(iris)
library(ggplot2)
g <- ggplot(iris, aes(Sepal.Length, Petal.Length)) + geom_point(aes(colour=Species), alpha=0.5) #desired plot

plot(iris$Sepal.Length, iris$Petal.Length, col=iris$Species) #attempt in base graphics
Run Code Online (Sandbox Code Playgroud)

使用{graphics}将另一个变量映射到alpha值怎么样?例如在ggplot2中:

g2 <- ggplot(iris, aes(Sepal.Length, Petal.Length)) + geom_point(aes(colour=Species, alpha=Petal.Width)) 
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!

graphics alpha r scatter-plot

6
推荐指数
1
解决办法
3010
查看次数

R中的散点图与ggvis:如何绘制具有不同形状标记和相应拟合回归线的多个组

要用ggvis包装在R中绘制以下内容,

在此输入图像描述

代码是

mtcars %>% 
  ggvis(~wt, ~mpg, fill = ~factor(cyl)) %>% 
  layer_points() %>% 
  group_by(cyl) %>% 
  layer_model_predictions(model = "lm")
Run Code Online (Sandbox Code Playgroud)

如果我在上面更改了fillto shape,则会出现错误:

Error: Unknown properties: shape.
Did you mean: stroke?
Run Code Online (Sandbox Code Playgroud)

为什么?如何达到预期的效果?

plot r scatter-plot ggvis

6
推荐指数
1
解决办法
1624
查看次数

如何使用seaborn创建具有连接点的多个系列散点图?

我有一组存储在pandas数据帧中的数据.我正在尝试使用seaborn的pointplot()创建一个带有连接点的多系列散点图.每个系列都有不同的(x,y)值,它们在我的数据框中存储为浮点数.每行都有一个标签,区分每个系列.我正在使用Python 2.7,seaborn版本0.5.1和matplotlib版本1.4.3.

我设法找到的一切告诉我,我可以通过以下方式实现这一目标:

import matplotlib.pyplot as plt
import seaborn as sns

# Suppose my dataframe is called 'df', with columns 'x', 'y', and 'label'.
sns.pointplot(x = 'x', y = 'y', hue = 'label', data = df)
Run Code Online (Sandbox Code Playgroud)

但是,这会导致一些奇怪的行为:

  • 正确识别颜色,但只连接了一些
  • x轴上的数字重叠,看起来好像每个数据点都用它的值标记,而不是用适当的,干净的值来缩放它(似乎将x数据视为字符串/标签而不是浮点数).

我尝试通过将数据框分成几部分来解决这个问题.这并不理想,因为我可能有大约10个系列同时绘制,我宁愿不手动分割数据:

df1 = df[df.test_type.values == "label 1"]
df2 = df[df.test_type.values == "label 2"]

ax = sns.pointplot(x = 'x',y='y', color = "blue", data = df1)
sns.pointplot(x = 'x', y = 'y', data = df2, color="red", ax = ax)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,所有点都被连接并且它们被适当地着色,但是再次,x轴显示出非常奇怪的行为.即使我的每个数据框的x值不同,图也会对齐它们,使它们看起来是一样的.

现在,我不确定如何干净地发布我的输出/绘图,但我可以使用以下内容重新创建一些问题: …

python matplotlib scatter-plot seaborn

6
推荐指数
2
解决办法
8307
查看次数

Matplotlib:具有colormaps的散点图,用于edgecolor但没有facecolor

我想要一个带有colormap的散点图,用于edgecolors但没有facecolors。当我使用时facecolor='None',它不起作用。

import numpy as np
import matplotlib.pyplot as plt


N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2  # 0 to 15 point radii

plt.scatter(x, y, s=area,c=colors,facecolors='None',cmap="gist_rainbow", alpha=0.5)
plt.show()
Run Code Online (Sandbox Code Playgroud)

有什么办法吗?

matplotlib scatter-plot

6
推荐指数
2
解决办法
4625
查看次数

根据使用散射的变量绘制没有填充,颜色和大小的圆圈

我必须在绘图上显示的信息是2个坐标:大小和颜色(无填充).颜色很重要,因为我需要一种颜色图表类型的图表来根据颜色值显示信息.

我尝试了两种不同的方法:

  1. 创建特定圈子并添加各个圈子.

    circle1 = plt.Circle(x, y, size, color='black', fill=False)
            ax.add_artist(circle1)
    
    Run Code Online (Sandbox Code Playgroud)

这种方法的问题是我找不到根据颜色值设置颜色的方法.即,对于0-1的值范围,我希望0为完全蓝色而1为完全红色,因此在它们之间是紫色的不同色调,其红色/蓝色取决于颜色值的高/低.

  1. 之后我尝试使用分散功能:

    size.append(float(Info[i][8]))
    plt.scatter(x, y, c=color, cmap='jet', s=size, facecolors='none')
    
    Run Code Online (Sandbox Code Playgroud)

这种方法的问题是大小似乎没有变化,这可能是我创建数组大小的方式的原因.因此,如果我用大数字替换大小,则图表显示为圆圈.这facecolours = 'none'只是为了绘制周长.

python matplotlib scatter-plot colorbar

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

如何在Google colaboratory中旋转3D散点图?

我正在Google colab中生成3d散点图,但是问题是生成的无花果是静态的并且不能旋转。我也尝试了命令

%matplotlib笔记本

启用3D散射旋转,因为它显然在jupyter笔记本电脑环境中有效,但似乎在Google colab环境中不起作用。

你可以在这里找到我的代码

python data-visualization scatter-plot scatter3d google-colaboratory

6
推荐指数
1
解决办法
697
查看次数