小编Chr*_*ris的帖子

如何使用ggplot2设置图例alpha

我有一个风速与方向的图表,它有一个巨大的点数,所以我使用alpha = I(1/20)除了color = month

这是一个代码示例:

library(RMySQL)
library(ggplot2)
con <- dbConnect(...)
wind <- dbGetQuery(con, "SELECT speed_w/speed_e AS ratio, dir_58 as dir, MONTHNAME(timestamp) AS month, ROUND((speed_w+speed_e)/2) AS speed FROM tablename;");

png("ratio-by-speed.png",height=400,width=1200)
qplot(wind$dir,wind$ratio,ylim=c(0.5,1.5),xlim=c(0,360),color=wind$month,alpha=I(1/30),main="West/East against direction")
dev.off()
Run Code Online (Sandbox Code Playgroud)

这会产生一个不错的图形,但我的问题是图例的alpha也是1/30,这使得它不可读.有没有办法可以强制传说为1 alpha?

这是一个例子: 示例图

r ggplot2

73
推荐指数
2
解决办法
1万
查看次数

如何在ggplot中创建一个facet,除了使用不同的变量

我有一个包含3个变量的数据框,这些变量都是风速.我想通过相互绘制所有变量来检查硬件的校准程度.虽然在这种情况下有三个,但最多可能有6个.

这将导致3个不同的图形,其中xy参数不断变化.我真的很想用平面来绘制这些 - 或者具有相同外观的东西.

以下是一些示例数据,在一个名为的数据框中wind:

wind <- structure(list(speed_60e = c(3.029, 3.158, 2.881, 2.305, 2.45, 
2.358, 2.325, 2.723, 2.567, 1.972, 2.044, 1.745, 2.1, 2.08, 1.914, 
2.44, 2.356, 1.564, 1.942, 1.413, 1.756, 1.513, 1.263, 1.301, 
1.403, 1.496, 1.828, 1.8, 1.841, 2.014), speed_60w = c(2.981, 
3.089, 2.848, 2.265, 2.406, 2.304, 2.286, 2.686, 2.511, 1.946, 
2.004, 1.724, 2.079, 2.058, 1.877, 2.434, 2.375, 1.562, 1.963, 
1.436, 1.743, 1.541, 1.256, 1.312, 1.402, 1.522, 1.867, 1.837, 
1.873, 2.055), speed_40 = c(2.726, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

18
推荐指数
1
解决办法
7775
查看次数

线程,非阻塞websocket客户端

我想在Python中运行一个程序,它每秒通过Web套接字向Tornado服务器发送一条消息.我一直在websocket-client上使用这个例子;

此示例不起作用,因为ws.run_forever()将停止执行while循环.

有人能给我一个如何正确实现这个作为一个线程类的例子,我既可以调用send方法,也可以接收消息?

import websocket
import thread
import time

def on_message(ws, message):
    print message

def on_error(ws, error):
    print error

def on_close(ws):
    print "### closed ###"

def on_open(ws):
    pass

if __name__ == "__main__":
    websocket.enableTrace(True)
    ws = websocket.WebSocketApp("ws://echo.websocket.org/", on_message = on_message, on_error = on_error, on_close = on_close)
    ws.on_open = on_open
    ws.run_forever()

    while True:
        #do other actions here... collect data etc.
        for i in range(100):
            time.sleep(1)
            ws.send("Hello %d" % i)
        time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

python multithreading websocket

12
推荐指数
1
解决办法
2万
查看次数

如何使用R中的时间序列数据制作热图

我一直在尝试使用ggstructure绘制热图.如果我能得到一些指示,我不介意使用基本图形.我希望热图看起来像这样:

http://www.vistadatavision.com/uploads/images/reports/intensity_plot_1.PNG

我没有设法进一步输入ggstructure(df3),然后在错误中摸不着头脑 - 这似乎是因为它不喜欢日期/时间数据?

这是两周数据样本的"输入",间隔为10分钟.编辑:我最后只有4天的空间.我希望它就够了.

任何指针都非常赞赏.

structure(list(date = c("2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", "2010-01-01", 
"2010-01-01", "2010-01-01", "2010-01-01", …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 lubridate

9
推荐指数
1
解决办法
2425
查看次数

如何将4字节IEEE(小端)浮点二进制表示转换为浮点数

我正在解码一个二进制文件,它有四个字节表示的十进制数字,小端.例如,94 53 F0 40代表7.510202.不幸的是,Python给了我7.51020240784.

当我尝试解析这些数据时unpack("<f",sampledata)[0],由于Python存储值的方式,我没有得到原始数据的精确表示(有关更多信息,请参阅http://bugs.python.org/issue4114).

不幸的是,我确实需要获得完全相同的表示 - 无论有关浮点数的不准确性的讨论,因为我需要将这些值写入文本文件,其初始值与最初写入二进制文件的位数相同.

如果可能的话,我宁愿坚持使用Python,但如果有必要,我很乐意在C中实现解决方案.我不能简单地截断unpack函数返回的原因是我不能保证原始float有多少小数位,例如0C 02 0F 41根据我的十六进制编辑器代表8.938,原始二进制文件只有3个小数位.

为了清楚起见,我需要将四个十六进制字节作为输入,并输出文本/ ASCII或IEEE 32位浮点数的数字表示,其具有与创建者所预期的相同的小数位数.文件.输出我将用于创建原始二进制数据文件的CSV,而不是用于实际执行任何计算.

有什么建议?

例:

from __future__ import print_function
from struct import *

print("Should print 7.510202")

hexbytes = b"\x94\x53\xF0\x40"

# 01101001 11001000 11110001 01000000
# should print 7.510202

print(unpack("<f",hexbytes)[0])
Run Code Online (Sandbox Code Playgroud)

c python floating-point binary ieee-754

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

R:如何使用ggplot2的stat_function绘制gumbel分布

如果这是相当脆弱的话,请耐心等待,如果我遗漏了任何东西,请随时提问...

我试图根据以下链接进行50年的极端风计算

http://www.wasp.dk/Products/weng/ExtremeWinds.htm

他们似乎使用gumbel分布,所以我在包"evir"中使用了函数gumbel以适应数据的分布,并在包"evd"中使用dgumbel作为绘图函数.

package("evd")
package("evir")

speeds2 <- data.frame(speed=sample(10:50,1000,rep=TRUE))
gumbel(speeds2$speed)
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用ggplot2的stat_function来绘制它,就像这样(除了现在我已经为loc和scale添加了虚拟值).

library(ggplot2)
ggplot(data=speeds2, aes(x=speed)) + 
  stat_function(fun=dgumbel, args=list(loc=1, scale=0.5))
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Error in dgev(x, loc = loc, scale = scale, shape = 0, log = log) : 
  unused argument(s) (loc = loc, scale = scale, shape = 0, log = log)
Run Code Online (Sandbox Code Playgroud)

我不确定我是否以正确的方式这样做.任何指针都将非常感激.

r ggplot2

3
推荐指数
2
解决办法
6235
查看次数

无法将命令输出重定向到文件(对于后缀状态)

我试图运行以下命令:

postfix status > tmp
Run Code Online (Sandbox Code Playgroud)

但是,生成的文件永远不会写入任何内容,而输出仍然会发送到终端.

我已经尝试将以下内容添加到混合中,甚至在重定向输出之前使用echo来回显,但似乎没有任何效果

postfix status 2>&1 > tmp
Run Code Online (Sandbox Code Playgroud)

其他命令没有问题.

linux bash shell

3
推荐指数
1
解决办法
2686
查看次数