我用缩放/平移功能构建了一个d3.js散点图.你可以在这里看到完整的东西(点击"在新窗口中打开"以查看整个内容):http: //bl.ocks.org/129f64bfa2b0d48d27c9
有一些我无法弄清楚的功能,如果有人能指出我正确的方向,我会爱上它:
更不重要的是,还有一些领域我已经找到了解决方案,但它非常粗糙,所以如果你有更好的解决方案,请告诉我:
我编写了自己的函数来计算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) 显示的图表由以下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轴范围.

我有一堆带有两组数据的交叉图,并且一直在寻找一种matploltib方法,用平滑的多边形轮廓突出显示它们的绘图区域.
目前我只使用Adobe Illustrator并修改已保存的情节,但这并不理想.例:
我很感激任何指针/链接到示例.
干杯
我正在使用Gnuplot根据包含5个项目的数据制作散点图:
index, name, x value, y value, color (#12e335)
Run Code Online (Sandbox Code Playgroud)
每个条目的颜色都不同.有没有办法让我的数据点(x,y)的颜色得到数据中列出的颜色?
是否有可能采用这种格式的颜色(#aabb12),还是需要更改格式为特定的gnuplot?点颜色与数据中指定的颜色相同非常重要,因为我稍后会使用相同的颜色作为饼图(而不是gnuplot).
任何帮助,将不胜感激.
我很习惯在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)
任何帮助表示赞赏!
要用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)
为什么?如何达到预期的效果?
我有一组存储在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)
但是,这会导致一些奇怪的行为:
我尝试通过将数据框分成几部分来解决这个问题.这并不理想,因为我可能有大约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值不同,图也会对齐它们,使它们看起来是一样的.
现在,我不确定如何干净地发布我的输出/绘图,但我可以使用以下内容重新创建一些问题: …
我想要一个带有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)
有什么办法吗?
我必须在绘图上显示的信息是2个坐标:大小和颜色(无填充).颜色很重要,因为我需要一种颜色图表类型的图表来根据颜色值显示信息.
我尝试了两种不同的方法:
创建特定圈子并添加各个圈子.
circle1 = plt.Circle(x, y, size, color='black', fill=False)
ax.add_artist(circle1)
Run Code Online (Sandbox Code Playgroud)这种方法的问题是我找不到根据颜色值设置颜色的方法.即,对于0-1的值范围,我希望0为完全蓝色而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'只是为了绘制周长.
我正在Google colab中生成3d散点图,但是问题是生成的无花果是静态的并且不能旋转。我也尝试了命令
%matplotlib笔记本
启用3D散射旋转,因为它显然在jupyter笔记本电脑环境中有效,但似乎在Google colab环境中不起作用。
你可以在这里找到我的代码
python data-visualization scatter-plot scatter3d google-colaboratory