小编cou*_*nt0的帖子

有什么好的方法可以为R中的ggplot预设绘图选项

我在整个文件中有一堆冗长的重复ggplot2指令.到目前为止,我一直在使用变量控制预设值,保持图形均匀,在一个点中具有配置(例如,改变所有图形的颜色).

我真正想要的是预设这些指令的好方法,所以我不必全部编写语句.作为一个例子,我在文件的顶部定义:

OPTAX=theme_text(angle=30, hjust=1, vjust=1, size=8)
Run Code Online (Sandbox Code Playgroud)

我使用的是情节陈述

P<-ggplot(
       data=MYDATA,
       aes(x=Topics, y=value, fill=variable)) +
       ....
       opts(axis.text.x=OPTAX)
)
Run Code Online (Sandbox Code Playgroud)

我想避免编写axis.text.x=MYVAR部分并写一些类似的东西

... + opts(MYOPTS) + ...
Run Code Online (Sandbox Code Playgroud)

或者完全避免opts陈述并写下来

... + ALLMYOPTS + ...
Run Code Online (Sandbox Code Playgroud)

所以我的所有选项都在一个语句中预定义.

作为第二件事,覆盖声明是好的.就像是

opts(MYOPTS, axis.text.x=theme_text(angle=60)
Run Code Online (Sandbox Code Playgroud)

会很棒,所以我可以保留预设,但仍然使用自定义选项.

r ggplot2

7
推荐指数
2
解决办法
1264
查看次数

为什么我得到CL_MEM_OBJECT_ALLOCATION_FAILURE?

我正在GPU上分配一个cl_mem缓冲区并对其进行处理,它可以正常工作,直到超过一定的大小.在这种情况下,分配本身成功,但执行或复制不成功.我确实想要使用设备的内存以便更快地操作,所以我分配如下:

buf = clCreateBuffer (cxGPUContext, CL_MEM_WRITE_ONLY, buf_size, NULL, &ciErrNum);
Run Code Online (Sandbox Code Playgroud)

现在我不明白的是尺寸限制.我正在复制大约16 MB但应该可以使用大约128 MB(参见参考资料CL_DEVICE_MAX_MEM_ALLOC_SIZE).

为什么这些数字差异如此之大?


以下是oclDeviceQuery的一些摘录:

 CL_PLATFORM_NAME:  NVIDIA
 CL_PLATFORM_VERSION:  OpenCL 1.0 
 OpenCL SDK Version:  4788711

  CL_DEVICE_NAME:          GeForce 8600 GTS
  CL_DEVICE_TYPE:          CL_DEVICE_TYPE_GPU
  CL_DEVICE_ADDRESS_BITS:              32
  CL_DEVICE_MAX_MEM_ALLOC_SIZE:  128 MByte
  CL_DEVICE_GLOBAL_MEM_SIZE:     255 MByte
  CL_DEVICE_LOCAL_MEM_TYPE:      local
  CL_DEVICE_LOCAL_MEM_SIZE:      16 KByte
  CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:  64 KByte
Run Code Online (Sandbox Code Playgroud)

c++ gpu gpgpu opencl gpu-programming

5
推荐指数
1
解决办法
8145
查看次数

控制放置Eclipse Window Builder创建的GUI对象引用的位置

摘要:我正在寻找一种方法来配置Eclipse Window Builder的代码生成器,以将其对象引用放在类主体中,而不是在initalize()方法中本地放置.

详细:

Window builder有一个内置的代码生成器/代码分析器,可以从"图形表单设计器"生成GUI代码,反之亦然.快速设计GUI并了解各种框架如何在java中工作(特别是对于Java初学者)非常有用.但是,当我转向更复杂的GUI设置时,我在设计中使用生成的代码时遇到了问题.问题是大多数生成的代码都放在initialize()方法中,这使得对象驻留在本地范围内并且很难从"外部"获得引用.

到目前为止,我已经手动将类型声明从initialize()方法复制/粘贴到类体中作为公共访问它们,但这似乎是错误的方法.只要我不从图形设计器中重新组织GUI,它就可以正常工作.在这种情况下,代码生成器会在方法中再次放置它的类型声明.initialize()

自动生成的代码如下所示:

   // AUTO-GENERATED CODE
   public class MyGUI {
      private void initialize() {
          // gui objects declared AND created in this scope by Window Builder
          JFrame frame = new JFrame();
          JPanel panel_1 = new JPanel();
          frame.getContentPane().add(panel_1);
    }
  }
Run Code Online (Sandbox Code Playgroud)

我想要的是:

   public class MyGUI {
          // accessible from outside
          public Frame frame = null;
          public JPanel panel_1 = null;

       private void initialize() {
          // gui …
Run Code Online (Sandbox Code Playgroud)

java eclipse java-ee windowbuilder eclipse-indigo

5
推荐指数
1
解决办法
2218
查看次数