Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将两个图表合并到一个分区中-d3/css_Javascript_Html_Css_D3.js - Fatal编程技术网

Javascript 将两个图表合并到一个分区中-d3/css

Javascript 将两个图表合并到一个分区中-d3/css,javascript,html,css,d3.js,Javascript,Html,Css,D3.js,我绝对不擅长css之类的东西。 我有两个图(JSFIDLE示例): 我想把它们放在同一个div,但不是并排,而是放在2x1中(2行1列) 到目前为止,我的结论是(这些数据加在一起没有意义,但这只是一个测试): 我试图在这里重现这种行为: 但在这里,至少他们在同一条线上,看起来更好。 我希望能够有他们在同一列,不同的行。我不知道怎么做 这是.css: .arc text { font: 10px sans-serif; text-anchor: middle; } .arc pa

我绝对不擅长
css
之类的东西。 我有两个图(JSFIDLE示例):

我想把它们放在同一个
div
,但不是并排,而是放在2x1中(2行1列)

到目前为止,我的结论是(这些数据加在一起没有意义,但这只是一个测试):

我试图在这里重现这种行为:

但在这里,至少他们在同一条线上,看起来更好。 我希望能够有他们在同一列,不同的行。我不知道怎么做

这是
.css

.arc text {
  font: 10px sans-serif;
  text-anchor: middle;
}

.arc path {
  stroke: #fff;
}

.info {
  padding: 6px 8px;
  font: 14px/16px Arial, Helvetica, sans-serif;
  background: white;
  background: rgba(255, 255, 255, 0.8);
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);
  border-radius: 5px;
}

.info h4 {
  margin: 0 0 5px;
  color: #777;
}

.info-legend {
  line-height: 18px;
  color: #555;
}

.info-legend i {
  width: 18px;
  height: 18px;
  float: left;
  margin-right: 8px;
  opacity: 0.7;
}

.axis path,
.axis line {
  fill: none;
  stroke: black;
  shape-rendering: crispEdges;
}

.axis text {
  font-family: sans-serif;
  font-size: 11px;
}

.dot {
  stroke: #000;
}

根据我从您的描述中得到的信息,您希望svg容器的行为类似于
,而不是
内联块
。实现这一点的一种方法是将
svg
宽度设置为
100%
,这样宽度将与
div
容器相同,尽管高度与代码中的高度相同

工作示例

如果要将图表居中对齐,可以在svg容器上相应地使用transform translate


此外,如果您想要实现具有属性的响应图表,例如
preserveAspectRatio

,那么将宽度设置为100%可能会很有帮助。根据我从您的描述中得到的信息,您希望svg容器的行为类似于
,而不是
内联块
。实现这一点的一种方法是将
svg
宽度设置为
100%
,这样宽度将与
div
容器相同,尽管高度与代码中的高度相同

工作示例

如果要将图表居中对齐,可以在svg容器上相应地使用transform translate

此外,如果要实现具有属性(如
preserveAspectRatio
)的响应图表,将宽度设置为100%可能会很有帮助。这应该可以做到:

svg {
  display: block;
}
这应该做到:

svg {
  display: block;
}

我喜欢您的解决方案,因为我没有限制其他
svg
s的行为,但我最终得到了一个非常大的div,无法调整。@pceccon如果将宽度设置为“100%”,则更容易使图表更具响应性,例如,您可以使用svg的
preserveSpectratio
属性来控制如何缩放或转换图表。我只是不知道我怎么会有这么大的宽度,以及如何控制它。它比堆栈条上的larges图大。@pceccon我想你是说div容器的宽度大?这是因为CSS文件中没有
.info
的宽度值,因此div将是
正文的100%宽度。我在这里加了一个宽度(450px)。希望这是您所需要的。我喜欢您的解决方案,因为我没有限制其他
svg
s的行为,但我最终得到了一个非常大的div,无法调整。@pceccon如果将宽度设置为“100%”,则更容易使图表更具响应性,例如,您可以使用svg的
preserveSpectratio
属性来控制如何缩放或转换图表。我只是不知道我怎么会有这么大的宽度,以及如何控制它。它比堆栈条上的larges图大。@pceccon我想你是说div容器的宽度大?这是因为CSS文件中没有
.info
的宽度值,因此div将是
正文的100%宽度。我在这里加了一个宽度(450px)。希望这是你需要的。