好吧,我开始对D3更加熟悉,但在某些方面我仍然有些模糊.我现在正在尝试绘制网格线,但我意识到我可能正在进行攻击而不是正确地进行操作.我尝试使用教程添加一些网格线,但最终得到了很多代码,我似乎是为了让它能够正确排列.我想知道是否有人能指出我更好的写作方式......
原始代码是这样的.
<script type="text/javascript">
//Width and height
var w = 800;
var h = 400;
var padding = 20;
var border=1;
var bordercolor='black';
var dataset = [
[5, 20], [480, 90], [250, 50], [100, 33], [330, 95],[-50,-100],[50,-45],
[410, 12], [475, 44], [25, 67], [85, 21], [220, 88],[-480, -467], [3,-90],[468,481]
];
// create scale functions
var xScale = d3.scale.linear()
.domain([d3.min(dataset, function(d) { return d[0]; }), d3.max(dataset, function(d) { return d[0]; })])
.range([padding, w - padding * 2]);
var yScale = d3.scale.linear() …Run Code Online (Sandbox Code Playgroud) 假设我有一个Javascript数组,如下所示:
var test = ['b', 'c', 'd', 'a'];
Run Code Online (Sandbox Code Playgroud)
我想对数组进行排序.显然,我可以这样做来排序数组:
test.sort(); //Now test is ['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是一个索引数组,指示排序元素相对于原始元素的位置.我不太清楚怎么说这个,所以也许这就是为什么我无法弄清楚如何去做.
如果这样的方法被称为sortIndices(),那么我想要的是:
var indices = test.sortIndices();
//At this point, I want indices to be [3, 0, 1, 2].
Run Code Online (Sandbox Code Playgroud)
'a'位于第3位,'b'位于0,'c'位于1,'d'是原始阵列中的2.因此,[3,0,1,2].
一种解决方案是对数组的副本进行排序,然后循环遍历排序的数组并找到原始数组中每个元素的位置.但是,这感觉很笨拙.
是否有现有方法可以满足我的需求?如果没有,您将如何编写一个执行此操作的方法?
我最近了解了NVCC如何为不同的计算架构编译CUDA设备代码.
根据我的理解,当使用NVCC的-gencode选项时,"arch"是程序员应用程序所需的最小计算体系结构,也是NVCC的JIT编译器将编译PTX代码的最小设备计算体系结构.
我也明白-gencode的"code"参数是NVCC完全编译应用程序的计算架构,因此不需要JIT编译.
在检查了各种CUDA项目Makefile之后,我注意到以下情况经常发生:
-gencode arch=compute_20,code=sm_20
-gencode arch=compute_20,code=sm_21
-gencode arch=compute_21,code=sm_21
Run Code Online (Sandbox Code Playgroud)
经过一些阅读,我发现可以在一个二进制文件中编译多个设备架构 - 在本例中为sm_20,sm_21.
我的问题是为什么需要这么多的arch/code对?以上是否使用了"拱"的所有值?
它之间的区别是什么?
-arch compute_20
-code sm_20
-code sm_21
Run Code Online (Sandbox Code Playgroud)
是自动选择"拱形"字段中最早的虚拟架构,还是存在其他一些模糊行为?
我应该注意其他任何编译和运行时行为吗?
我已经阅读了手册http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#gpu-compilation,我仍然不清楚编译或运行时会发生什么.
我想知道是否可以使用scatterMatplotlib 的函数为每个点绘制单独的alpha值.我需要绘制一组点,每个点都有一个alpha值.
例如,我有这个代码来绘制一些点
def plot_singularities(points_x, p, alpha_point, file_path):
plt.figure()
plt.scatter(points_x, points_y, alpha=alpha_point)
plt.savefig(file_path + '.png', dpi=100)
plt.close()
Run Code Online (Sandbox Code Playgroud)
我所有的points_x,points_y并alpha_point有n个值.但是,我无法将数组分配给alpha参数scatter().如何为每个点设置不同的alpha值?我可以使用每个特定的alpha值循环和逐点绘制,但这似乎不是一个好方法.
是否有一种简单的方法来检查iPython笔记本代码在编写时是否符合PEP8?
在我的散点图中的标记示例中,我将颜色设置为绿色,将边缘颜色设置为黑色,并将阴影设置为"|".为了显示填充图案,我必须设置edgecolor,但是当我这样做时,我会在标记周围形成一个非常粗的边框.两个问题:
1)如何设置此边框的大小(最好为0)?
2)如何增加影线的厚度?
我无法理解使用D3事件和调度功能.我有一个我一直在研究的图表示例:" 带有图例的垂直条形图".
绘制图表和图例很容易,但我想添加突出显示每个栏的功能,因为我将鼠标悬停在位于图表右侧的相关文本图例上.
我已经阅读了所有的事件文档,甚至看了很多例子,其中大部分都很复杂,但我似乎错过了一些东西.有谁知道如何最好地完成文本图例鼠标悬停功能,调度事件以自动更改相应垂直条的颜色?
到目前为止,我已经能够很好地标记子图,但我遇到了主要问题.
这是我的代码的相关部分:
data_BS_P = data[channels[0]]
data_BS_R = data[channels[1]]
data_BS_Y = data[channels[2]]
plot_BS_P = data_BS_P.plot() #data_BS_P is a pandas dataframe
axBS = plot_BS_P.gca()
axBS.plot(data_BS_R, label='Roll')
axBS.plot(data_BS_Y, label='Yaw')
axBS.set_ylabel('Amplitude (urad)')
axBS.legend(loc='upper center', bbox_to_anchor=(0.5, 1.05), ncol=3,
fancybox=True, shadow=True)
ml1 = MultipleLocator(10)
ml2 = MultipleLocator(3600)
axBS.yaxis.set_minor_locator(ml1)
axBS.xaxis.set_minor_locator(ml2)
plot_BS_P.save('L1-SUS-BS_M1_DAMP_PRY_INMON.jpg')
Run Code Online (Sandbox Code Playgroud)
这就是我到目前为止所拥有的:
注意蓝线的冗长标签.我希望将其标记为"Pitch"而不是文件名.我可以在哪一行?
我在Windows 64位上安装了Anaconda.我已经下载PyCharm创建一个项目,在我已经安装了PyCharm的终端numpy,scipy,matplotlib使用下面的命令:
conda install numpy
conda install scipy
conda install matplotlib
Run Code Online (Sandbox Code Playgroud)
我无法以与安装这些其他软件包相同的方式安装Tensorflow.我该如何安装?
我安装了PyCharm并启用了pep8检查Inspections.如果我写:
def func(argOne):
print(argOne)
Run Code Online (Sandbox Code Playgroud)
IDE向我显示此警告: Argument name should be lowercase
没有选择只忽略此类检查.
我在pep8
这里找不到这样的错误号是所有的命名检查.
如何只忽略其中一些?
我需要这个,因为必须保留当前的项目编码指南.改变整个项目的指导方针太难了.
我只需要禁用一些命名检查.并非都喜欢"Settings"-> "Editor"-> "Inspections"->"PEP8 coding style violation".
例如,应该用PEP8检查类名,而不是函数参数名.