我试图获得类似smoothScatter函数的功能,仅在ggplot中.除了绘制N个最稀疏的点之外,我已经找到了所有的东西.谁能帮我这个?
library(grDevices)
library(ggplot2)
# Make two new devices
dev.new()
dev1 <- dev.cur()
dev.new()
dev2 <- dev.cur()
# Make some data that needs to be plotted on log scales
mydata <- data.frame(x=exp(rnorm(10000)), y=exp(rnorm(10000)))
# Plot the smoothScatter version
dev.set(dev1)
with(mydata, smoothScatter(log10(y)~log10(x)))
# Plot the ggplot version
dev.set(dev2)
ggplot(mydata) + aes(x=x, y=y) + scale_x_log10() + scale_y_log10() +
stat_density2d(geom="tile", aes(fill=..density..^0.25), contour=FALSE) +
scale_fill_gradientn(colours = colorRampPalette(c("white", blues9))(256))
Run Code Online (Sandbox Code Playgroud)
请注意,在基本图形版本中,如何在平滑密度图上绘制100个最"稀疏"的点.稀疏度由点坐标处的核密度估计值定义,重要的是,核对密度估计值是在对数变换(或任何其他坐标变换)之后计算的.我可以通过添加来绘制所有点+ geom_point(size=0.5),但我只想要稀疏点.
有没有办法用ggplot来实现这个目标?这有两个部分.第一个是找出坐标变换后的异常值,第二个是仅绘制那些点.
有人知道如何为给定数据提取平滑cspline曲线的一些数据吗?
例如,存在具有对应于x和y值的2列的数据文件.我可以通过以下命令用平滑的cpline曲线绘制数据
p 'data' w lp, "" smooth csplines
Run Code Online (Sandbox Code Playgroud)
我想将平滑的cpline曲线提取为另一个数据文件.
我想知道是否有可能平滑情节或使其更好,因为现在像素太大了.
library(ggplot2)
library(reshape2)
# plot2d = melt(c)
plot2d = melt(matrix(rnorm(20), 5)) # fake data
names(plot2d) <- c("x", "y", "z")
v <- ggplot(plot2d, aes(x, y, z = z))
v + geom_tile(aes(fill = z)) +
scale_alpha_continuous(limits=c(start.point, end.point)) +
scale_fill_gradient2('TYYYT',low="green", mid = "white", high="red")
Run Code Online (Sandbox Code Playgroud)
我搜索了很多,但我找不到答案.
我想在Go Launcher中实现类似的功能.当您在应用程序抽屉中拖动图标并将其移出容器顶部或底部边界时,列表开始滚动.到目前为止,我尝试过以下事项:
发送触摸事件以模拟滚动 - 触摸屏幕时不可能
使用smoothScrollBy()方法 - 几乎在那里,但它只滚动屏幕高度距离
使用scrollBy() - 它只移动容器并留下空白.如果我能够重用屏幕上的视图,我会放一些行.
我需要ListView滚动SMOOTHLY.
所以这里有问题.谁知道怎么办?我会感谢我的应用程序部分给那些会帮助我的人:)
如果我尝试在我目前的数字与旋转摄像头plot3使用
while true; camorbit(0.9,-0.1); drawnow; end
Run Code Online (Sandbox Code Playgroud)
然后即使在8核MacPro上,旋转也会定期挂起一段时间(例子).
我可以顺利吗?
EDIT1:
虽然我的原始问题还没有解决方案,但我已经成功制作了一部具有getframe功能的更好的电影.但它不允许记录徒手旋转,并且在MATLAB2010b for Mac中非常错误.
%# fix wrong figure position in MATLAB2010b for Mac - depends on your layout
correctedPosition = get(gcf,'Position') + [21 -125 0 0];
fps = 60; sec = 10;
vidObj = VideoWriter('newfile.avi');
vidObj.Quality = 100;
vidObj.FrameRate = fps;
open(vidObj);
for i=1:fps*sec
camorbit(0.9,-0.1);
writeVideo(vidObj,getframe(gcf, correctedPosition));
end
close(vidObj);
Run Code Online (Sandbox Code Playgroud)
EDIT2:
我在MATLAB Central创建了一个类似的线程.
EDIT3:
您可以自己尝试下载我的一个数字.
是否有脚本/方式,使普通的CSS :hover更流畅?
想法是,你有两个类可能有渐变背景,脚本可以顺利交换类.所以渐变看起来就像按下按钮一样.应该是自动的,所以你调用触发器:$('.someclass').SmoothTransition();它会自动使用.someclass:hover作为第二个类.
赏金编辑
这实际上是一个非常有趣的问题,得到了我的部分答案.我的答案的问题是,它仅适用于纯色背景颜色,不适用于CSS渐变或任何其他更具体的参数.
这个脚本应该是任何jQuery开发者库中的"必备".所以,我向任何人提供150个代表,他们可以想办法或找到好的资源,可以做到这一点.
如果您的方法(单个jQuery插件)适用于所有这些示例,那么您就赢了!
现代编辑
由于这个问题在2011年被问到,当CSS过渡时,商业游戏不是一种选择.然后明白,为什么一切都集中在JS而不是CSS,在这个问题上.从这些答案中,我开发了一个JS脚本,当时是完美的.它不再是,CSS转换现在是最终的解决方案,所以正确的答案被重新接受.
可能以前有人问过,但我找不到任何地方......
在视频领域,24 fps以及其他任何内容都很流畅.Cocos2d似乎只有在60 fps或者更低的时候才能流畅.30到50之间的任何东西肯定都不顺利,fps计数器似乎不准确......
为什么是这样?或者只有我有这种情况?
在我的WPF应用程序中,用户按下按钮以启动平滑旋转的3D模型,然后让按钮停止旋转.
为此,我创建了一个DispatcherTimer:
DispatcherTimer timer = new DispatcherTimer();
timer.Tick += new EventHandler( timer_Tick );
timer.Interval = new TimeSpan( 0, 0, 0, 0, 30 );
Run Code Online (Sandbox Code Playgroud)
当按下按钮时,我打电话timer.Start(),当按钮松开时我打电话timer.Stop().
该timer_Tick函数更改模型的旋转:
void timer_Tick( object sender, EventArgs e )
{
spin = ( spin + 2 ) % 360;
AxisAngleRotation3D rotation = new AxisAngleRotation3D( new Vector3D( 0, 1, 0 ), spin );
Transform3D rotate = new RotateTransform3D( rotation );
model2.Transform = rotate;
}
Run Code Online (Sandbox Code Playgroud)
我注意到的是,模型在大多数情况下平滑旋转,但经常冻结和口吃,暂停不同的持续时间,有时高达1/4秒.
有没有办法让这更顺畅?我理解通过使用DispatcherTimer(而不是System.Timers.Timer),回调发生在UI线程上.但是为了运行这条线,我必须处于UI威胁之中
model2.Transform = rotate;
Run Code Online (Sandbox Code Playgroud)
我已经阅读了有关在其他线程上获取计时器回调的各种方法.但似乎最终我必须与UI线程同步才能调用该行.如果我使用Invoke()从System.Timers.Timer回调线程编组到UI线程,那么会给整体更平滑的动画吗?它似乎不应该,因为它必须与UI线程同步,就像DispatcherTimer可能做的那样.对于这个问题,似乎任何设置 …
我有一个数据库,想要使用stat_smooth显示一个数字.
我可以显示avg_time vs Scored_Probabilities数字,如下所示:
c <- ggplot(dataset1, aes(x=Avg.time, y=Scored.Probabilities))
c + stat_smooth()
Run Code Online (Sandbox Code Playgroud)

但是当将Avg.time更改为时间或Age时,会发生错误:
c <- ggplot(dataset1, aes(x=Age, y=Scored.Probabilities))
c + stat_smooth()
error: geom_smooth: Only one unique x value each group. Maybe you want aes(group = 1)?
Run Code Online (Sandbox Code Playgroud)
我该怎么办呢?
我正在尝试使用Three.js加载一些STL文件.模型正确加载,但有太多的三角形我想合并/平滑.
我已经成功地在其他3D格式中应用了平滑的加载地形,但是我无法使用通过使用STLLoader加载STL文件而导致的BufferGeometry.
var material = new THREE.MeshLambertMaterial( { ... } );
var path = "./models/budah.stl";
var loader = new THREE.STLLoader();
loader.load( path, function ( object ) {
object.computeBoundingBox();
object.computeBoundingSphere();
object.computeFaceNormals();
object.computeVertexNormals();
object.normalizeNormals();
object.center();
// Apply smooth
var modifier = new THREE.SubdivisionModifier( 1);
var smooth = smooth = object.clone();
smooth.mergeVertices();
smooth.computeFaceNormals();
smooth.computeVertexNormals();
modifier.modify( smooth );
scene.add( smooth );
});
Run Code Online (Sandbox Code Playgroud)
这是我试过的,它会抛出一个错误:Uncaught TypeError:smooth.mergeVertices不是一个函数
如果我评论"mergeVertices()"行,我得到的是一个不同的错误:Uncaught TypeError:无法读取 SubdivisionsModifier第156行中未定义的属性'length'.
似乎我尝试的示例代码已经过时(由于Three.JS库中的大量更改,这最近发生了很多).或者也许我忘了什么.事实是顶点似乎是空的..?
提前致谢!