我是SVG的新手,所以请耐心等待.我阅读了很多关于这个主题的文章,每个人都指向像d3.js这样的解决方案,在我看来,这对于我所拥有的简单任务来说是复杂的.
我需要用笛卡尔坐标系制作图形,其中(0,0)位于左下角.它需要具有以百分比表示的宽度,高度和数据,因此所有内容都与页面一致.
所以,这是我的代码(为了简单起见,只有部分图表在那里):
<style>
.grid {stroke: white; stroke-width: 1; stroke-dasharray: 1 2}
.label{font-family: courier new; fill: white; font-size: 14px}
.data {stroke: white; stroke-width: 1}
</style>
<svg width="100%" height="100%">
<g class="x grid">
<line x1="0%" x2="0%" y1="80%" y2="100%"></line>
<line x1="10%" x2="10%" y1="80%" y2="100%"></line>
<line x1="20%" x2="20%" y1="80%" y2="100%"></line>
</g>
<g class="y grid">
<line x1="0%" x2="20%" y1="80%" y2="80%" ></line>
<line x1="0%" x2="20%" y1="90%" y2="90%" ></line>
<line x1="0%" x2="20%" y1="100%" y2="100%"></line>
</g>
<g class="x label">
<text x="10%" y="100%"> 1 minute </text>
<text x="20%" y="100%"> …Run Code Online (Sandbox Code Playgroud) 我需要使用多维数据集拓扑创建一个通信器,然后选择多维数据集的面,使用MPI_Cart_Shift在边缘处理的进程之间实现消息传递.例如,我处理等级0(R0)我的邻居是R2,R4,R6(立方体的下面).我可以找到R2和R4,但我无法理解如何找到R6.我的代码:
#include<mpi.h>
#include<stdio.h>
int main(int argc, char *argv[])
{
int rank, k;
int size;
int ndims = 3;
int source, dest;
int up,down,right,left,up3, down3;
int edges[6][4] = {{0,1,5,4},
{4,5,7,6},
{2,3,1,0},
{6,7,3,2},
{1,3,7,5},
{0,2,6,7}};
int t, incep=0;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Comm comm, comm3d;
int dims[3]={0,0,0}, coords[3]={0,0,0},
periods[3]={1,1,1}, reorder = 0;
MPI_Status status;
int user_edge;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Dims_create(size, ndims, dims);
MPI_Cart_create(MPI_COMM_WORLD, ndims, dims, periods, reorder, &comm);
MPI_Cart_coords(comm, rank, 3, coords);
fflush(stdout);
printf("Rank %d coordinates are %d %d %d\n", rank, …Run Code Online (Sandbox Code Playgroud) 我需要做两个数据帧的笛卡尔积.例如,
A = id weight type
10 20 a
10 30 b
25 10 c
B = date report
2007 y
2008 n
Run Code Online (Sandbox Code Playgroud)
然后C就像做了A和B的笛卡尔积之后
C = id weight type date report
10 20 a 2007 y
10 20 a 2008 n
10 30 b 2007 y
10 30 b 2008 n
25 10 c 2007 y
25 10 c 2008 n
Run Code Online (Sandbox Code Playgroud)
因为有些ID在A中是相同的,所以我不能使用类似的方式
C <- merge(A$id,B$date)
C <- merge(C,A,by="id")
C <- merge(C,B,by="date")
Run Code Online (Sandbox Code Playgroud)
这种方式会产生更多行.有人能帮助我离开这里吗?谢谢
分析屏幕上的眼动,我将我的原点设置到它的左下角(那时难以修改).
试图计算某些点和屏幕中心之间的距离我使用下面显示的简单公式.问题是在条件语句中使用它会变得很难看.
Sqrt[
(
(fixationX - centerX)^2 + (fixationY - centerY)^2
)
]
Run Code Online (Sandbox Code Playgroud)
有没有办法定制Norm来计算点之间的距离,而不是点和原点之间的距离?
或者在我的情况下,将原点设置为当前坐标系的"中心"?
我目前正在从事一个项目,该项目的向量包含大约800点的X和Y坐标。这些点代表线的电网。我的目标是计算沿着包含电线的XY坐标的向量所给出的路径可以位于或不能位于A点和B点之间的最短距离路径。
我已经读过有关Dijkstra算法的信息,但是由于我对它不甚了解,因此我不确定是否应该朝这个方向发展。如果能收到您的任何反馈或意见,可以指导我解决此问题,我将非常感谢。
我正在开发一个带有虚拟机器人的项目(计算机工艺模块中的Turtles for Minecraft),机器人将处于迷宫般的隧道中并且必须在其中导航.世界很方便地已经分为瓦片(它们的2D笛卡尔图,每个都有一个布尔可通过/不可通过的值),构建隧道的机器人将在他去的时候映射它们.
此外,在机器人需要快速进入的区域内散布着传送器"快捷方式".
问题是:让机器人找到目的地的最佳途径是什么?系统如何识别需要传送器的区域?A*是最着名的算法,但还有其他更适合应用程序的算法吗?请记住,我对寻路算法的经验很少,因此您可能需要将其分解为基本术语,以便我理解.有什么建议?
我是初学者,所以如果这是微不足道的,请原谅我的无知。
我有一个未知长度的 javascript 对象,每个属性的值都是一个数组(对我来说也是未知长度)。例如:
var obj = {"varA":[1,2,3],
"varB":['good','bad'],
"varC":[0,100],
"varD":['low','med','high']
}
Run Code Online (Sandbox Code Playgroud)
我想遍历每个属性并为每个属性值组合创建一个新对象。如果我知道属性的数量,我可以强制使用 for 循环,但是有没有一种方法可以在不知道要硬编码多少个循环的情况下进行枚举?
我基本上想做这样的事情:
var oblist = [];
for (a in varA){
for (b in varB){
for (c in varC){
for (d in varD){
oblist.push({"varA":varA[a], "varB":varB[b], "varC":varC[c], "varD":varD[d]});
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这样oblist将包含以下对象:
{"varA":1, "varB":"good", "varC":0, "varD":"low"}
{"varA":1, "varB":"good", "varC":0, "varD":"med"}
...
{"varA":3, "varB":"bad", "varC":100, "varD":"high"}
Run Code Online (Sandbox Code Playgroud)
谢谢!
编辑:看,我不是在寻求 for 循环或索引语法帮助。我在问如果我不知道对象中的属性数量怎么办(例如 varA、varB、varC、varD、varE,我知道我可以拥有 varZZ),所以我不能只是努力-代码 4 for 循环。有没有办法使用 obj[Object.keys(obj)[i]].length 设置它?
让我举一个简单的例子来解释我想要做什么。假设我们有两个非常简单的数据框,如下所示:
\n\nDf1\n+---+---+---+\n| a1| a2| a3|\n+---+---+---+\n| 2| 3| 7|\n| 1| 9| 6|\n+---+---+---+\n\nDf2\n+---+---+\n| b1| b2|\n+---+---+\n| 10| 2|\n| 9| 3|\n+---+---+\nRun Code Online (Sandbox Code Playgroud)\n\n从 df1、df2,我们需要创建一个新的 df,其中的列是 df1、df2 中原始列的笛卡尔积。特别是,新的 df 将具有 \xe2\x80\x98a1b1\xe2\x80\x99,\xe2\x80\x99a1b2\xe2\x80\x99,\xe2\x80\x99a2b1\xe2\x80\x99,\xe2\x80 \x99a2b2\xe2\x80\x99,\xe2\x80\x99a3b1\xe2\x80\x99,\xe2\x80\x99a3b2\xe2\x80\x99,行将是 df1、df2 中相应列的乘法。结果 df 应如下所示:
\n\nDf3\n+----+----+----+----+----+----+\n|a1b1|a1b2|a2b1|a2b2|a3b1|a3b2|\n+----+----+----+----+----+----+\n| 20| 4| 30| 6| 70| 14|\n| 9| 3| 81| 27| 54| 18|\n+----+----+----+----+----+----+\nRun Code Online (Sandbox Code Playgroud)\n\n我搜索了 Spark 在线文档以及此处发布的问题,但似乎它们都是关于行的笛卡尔积,而不是列。例如,rdd.cartesian()提供row中不同值组合的笛卡尔积,如下代码:
\n\nr = sc.parallelize([1, 2])\nr.cartesian(r).toDF().show()\n\n+---+---+\n| _1| _2|\n+---+---+\n| 1| 1|\n| 1| 2|\n| 2| 1|\n| 2| 2|\n+---+---+\nRun Code Online (Sandbox Code Playgroud)\n\n但这不是我需要的。同样,我需要创建新的列而不是行。在我的问题中,行数将保持不变。我明白udf最终可以解决问题。然而,在我的实际应用程序中,我们有巨大的数据集,创建所有列需要很长时间(大约 500 个新列作为所有可能的列组合)。我们更喜欢进行某种向量运算,这可以提高效率。我可能是错的,但 Spark udf 似乎是基于行操作,这可能是为什么花了这么长时间才能完成的原因。
\n\n非常感谢您的任何建议/反馈/评论。
\n\n为了您的方便,我在此处附加了简单的代码来创建上面所示的示例数据框:
\n\ndf1 = sqlContext.createDataFrame([[2,3,7],[1,9,6]],['a1','a2','a3'])\ndf1.show()\n\ndf2 …Run Code Online (Sandbox Code Playgroud) 是否有一个属性fig可以ax指示轴的投影是否是极坐标?
我正在尝试在一个更复杂的函数中创建一个基本的嵌套函数,该函数本质上具有以下功能:
is_polar(ax):
return ax.some_attribute
Run Code Online (Sandbox Code Playgroud)
不过,我不确定这是否可能,因为我已经查看了其明显的属性。我想在进行详尽的手动搜索之前我应该联系社区。
# Source | https://matplotlib.org/gallery/pie_and_polar_charts/polar_scatter.html
# Fixing random state for reproducibility
np.random.seed(19680801)
# Compute areas and colors
N = 150
r = 2 * np.random.rand(N)
theta = 2 * np.pi * np.random.rand(N)
area = 200 * r**2
colors = theta
fig = plt.figure()
ax = fig.add_subplot(111, projection='polar')
c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75)
Run Code Online (Sandbox Code Playgroud)
如何在 Dart 语言中创建动态列表数量的笛卡尔积?
例如我有两个列表:
X: [A, B, C]; Y: [W, X, Y, Z]
我想创建这样的列表 [AW, AX, AY, AZ, BW, BX, BY, BZ, CW, CX, CY, CZ]
尽管 Python、Java 有预先实现的库,但我认为 Dart 语言没有。