我有一组数据,我正在散点图中.当我将鼠标悬停在其中一个圆圈上时,我希望它能够弹出数据(如x,y值,或许更多).这是我尝试使用的:
vis.selectAll("circle")
.data(datafiltered).enter().append("svg:circle")
.attr("cx", function(d) { return x(d.x);})
.attr("cy", function(d) {return y(d.y)})
.attr("fill", "red").attr("r", 15)
.on("mouseover", function() {
d3.select(this).enter().append("text")
.text(function(d) {return d.x;})
.attr("x", function(d) {return x(d.x);})
.attr("y", function (d) {return y(d.y);}); });
Run Code Online (Sandbox Code Playgroud)
我怀疑我需要提供更多信息才能输入什么数据?
制作一个应该显示网站前后的powerpoint.由于它目前是一个很长的网站,我宁愿做一个长的幻灯片(20"而不是7.5").但演示文稿中的所有其他幻灯片应该是正常大小的.
我找到了幻灯片大小(设计功能区,自定义部分),但调整了所有幻灯片的大小.
我在Redshift中有一个基于事件的表.我希望将所有事件与系列中的FIRST事件联系起来,前提是事件发生在此事件之前的N小时内.
如果我所关注的是非常第一行,我想简单地做:
SELECT
event_time
,first_value(event_time)
OVER (ORDER BY event_time rows unbounded preceding) as first_time
FROM
my_table
Run Code Online (Sandbox Code Playgroud)
但是因为我只想把它与过去N小时的第一个事件联系起来,我想要的是:
SELECT
event_time
,first_value(event_time)
OVER (ORDER BY event_time rows between [N-hours ago] and current row) as first_time
FROM
my_table
Run Code Online (Sandbox Code Playgroud)
在我的桌子上的一点背景.它是用户操作,因此用户可以有效地跳转,执行1-100个操作,然后离开.大多数用户每天1-10次.会话很少持续一个多小时,所以我可以设置N = 1.
如果我只是设置一个PARTITION BY date_trunc('hour',event_time),我会为跨越一小时的会话创建双倍.
假设my_table看起来像
id | user_id | event_time
----------------------------------
1 | 123 | 2015-01-01 01:00:00
2 | 123 | 2015-01-01 01:15:00
3 | 123 | 2015-01-01 02:05:00
4 | 123 | 2015-01-01 13:10:00
5 | 123 | 2015-01-01 13:20:00 …Run Code Online (Sandbox Code Playgroud) 我是D3的新手并且正在玩散点图.我无法让d3.max(数据)在设置域时正常工作!
我有以下设置随机数据集:
var data = [];
for (i=0; i < 40; i++){
data.push({"x": i/40, "y": i/8, "a": Math.floor(Math.random() * 3), "x2": Math.random()});
}
Run Code Online (Sandbox Code Playgroud)
然后以下设置我的坐标:
var x = d3.scale.linear().domain([0, 1]).range([0 + margin, w-margin]),
y = d3.scale.linear().domain([0, d3.max(data)]).range([0 + margin, h-margin]),
c = d3.scale.linear().domain([0, 3]).range(["hsl(100,50%,50%)", "rgb(350, 50%, 50%)"]).interpolate(d3.interpolateHsl);
Run Code Online (Sandbox Code Playgroud)
这将所有40个点放在一条水平线上.如果我用'5'替换d3.max(数据)那么它是一个对角线(尽管从左上角到右下角,我仍然在努力翻转y坐标).为什么d3.max(数据)没有按预期工作?
我正在从 SQL Server 过渡到 Vertica。有没有类似的方法来创建变量?
通常我会做类似的事情:
Define @myVariable int
Set @myVariable = select MAX(Field1) from myTable
Run Code Online (Sandbox Code Playgroud) 我想要一个图表,显示几个节点,节点之间的方向箭头表示关系,厚度相对于它们的连接强度。
在 R 这很简单
library("qgraph")
test_edges <- data.frame(
from = c('a', 'a', 'a', 'b', 'b'),
to = c('a', 'b', 'c', 'a', 'c'),
thickness = c(1,5,2,2,1))
qgraph(test_edges, esize=10, gray=TRUE)
Run Code Online (Sandbox Code Playgroud)
但是在 Python 中我一直无法找到一个明确的例子。NetworkX 和 igraph 似乎暗示这是可能的,但我一直无法弄清楚。
我有一个条形图,我可以成功地将填充颜色变为透明。现在我想将边缘更改为虚线,而不是实线。
df.plot(kind='barh', x='state', y='population', color=[1,0,0,0], edgecolor='blue', width=0.5)
我试过了edgestyle,我试过了,style='-'而且'--'。
虚线仅适用于线图吗?
我正在尝试使用plotly 绘制甘特图。重要的是水平泳道可以有多个在时间上分开的条。
我找到了一个使用日历日期 (YYYY-MM-DD) 的示例,并尝试使用时间 (HH:MM:SS) 进行转换。但是当我使用时间戳时,所有内容都会聚集在一起,没有间隙。
import plotly.express as px
import pandas as pd
df = pd.DataFrame([
dict(Start='00:01:12', Finish='00:01:59', Resource="Alex"),
dict(Start='00:04:51', Finish='00:05:28', Resource="Alex"),
dict(Start='00:02:12', Finish='00:04:34', Resource="Max")
])
fig = px.timeline(df, x_start="Start", x_end="Finish", y="Resource", color="Resource"
)
fig.update_layout(xaxis=dict(
title='Timestamp',
tickformat = '%H:%M:%S',
))
fig.show()
Run Code Online (Sandbox Code Playgroud)
关于在哪里开始使用d3制作小提琴图表的任何想法?它已经存在了吗?
我环顾四周,已经想出如何使用ggplot2做这件事,并希望有一个现成的例子,我可以从中学到但还没有找到.
我想我可以做一个非常痛苦的过程,在彼此之上制作各种尺寸的条形图,或者进行分布,旋转并镜像它.但肯定有更好的方法.
从左边拉出一个div?非常简单.从右边拉出来?没那么多.
我正在寻找一个div隐藏在屏幕外但连接到屏幕上的小标签.当用户单击标记时,out会滑动整个div.这是非常基本的左边使用jQuery和CSS.从右边开始,用户可以直接滚动查看"隐藏"div!
这是我想要的(http://jsfiddle.net/yHPTv/),除了div 部分隐藏在屏幕外左侧,我希望它部分隐藏在屏幕右侧.
这是我到目前为止所尝试的(http://jsfiddle.net/LU8En/),显然它不起作用,因为可以向右滚动.
使用动画(或幻灯片或切换拖放)的问题在于我不希望整个div只是消失/出现,我想要一点点存在.
我正在使用jQuery为D3中的绘图目的引入一串逗号分隔的数字.我试图获得这个阵列的最大值,但它并不顺利.
var x_data = $('.CostImport').text().split(',');
var y_data = $('.PriceImport').text().split(',');
var r_data = $('.SalesImport').text().split(',');
var c_data = $('.ZoneImport').text().split(',');
for (i = 0; i < x_data.length; i++) {
data.push({ "x": x_data[i], "y": y_data[i], "c": c_data[i], "r": r_data[i] });
}
alert(d3.max(r_data));
alert(d3.max(data, function (d) { return d.r }));
Run Code Online (Sandbox Code Playgroud)
这两个警报都传给我相同的号码,这是不正确的.实际最大值是928870,但我回到了9975.绘制一切正常(散点图,r确定大小和c颜色),所以我有点不知所措,为什么我不能拉最大数字.
有任何想法吗?
我有一个连接到Redshift的python脚本,执行一系列SQL命令,并生成一个新的派生表.
但是对于我的生活,我无法想办法让它每天自动运行.
我已经尝试过AWS Data Pipeline但我的shell脚本不会运行第一个复制语句.我不能让Lambda或Glue工作,因为我公司的IAM政策是限制性的.每天只运行一个python脚本,气流似乎有些过分.
有关服务的任何建议吗?
我们偶尔使用JSONB来存储元素。这作为字符串传递给Redshift,然后我使用UDF进行解析。对于审计报告,我想在一列中呈现JSON的一部分,而在另一列中呈现。除了可以在每一行中调用两个UDF之外,我还可以调用一个返回两个值的UDF吗?
作为一个玩具示例,考虑一个交易数据库,在该数据库中,每一行我们存储客户用来支付的方法。一些客户可以用多种金额付款(例如,花一张礼品卡然后补足现金差额),因此我们在此字段中存储JSON Blob。
{"Methods": [
{"Type":"Gift Card", "Amount": 5.74}
,{"Type":"Cash", "Amount": 4.26}
],
"Coupons": [
{"Code": "XHAY12", "Amount":1.22},
{"Code": "Y123A", "Amount": 4.66}
]}
Run Code Online (Sandbox Code Playgroud)
在我的报告中,我想要一列(methods)显示现金金额,第二列(coupons > $5)显示该交易是否获得了超过$ 5的折扣。
我也尝试RETURNS float, int使用方括号,大括号和括号,但会遇到一般语法错误。有人有建议吗?还是我需要吸收它并具有单独的功能?
python json user-defined-functions amazon-web-services amazon-redshift