我试图用nivo
制作一个响应线图。
我用这个MWE重现了我的尝试:
import React, { useState, useEffect } from "react";
import { ResponsiveLine } from "@nivo/line";
import styled from "styled-components";
const HoursGraphWrapper = styled.div`
display: grid;
grid-template-rows: 300px;
grid-template-columns: 1fr;
grid-gap: 10px;
`;
const useWindowWidth = () => {
let width, setWidth;
if (typeof window !== "undefined") {
[width, setWidth] = useState(window.innerWidth);
} else {
[width, setWidth] = useState(1001);
}
useEffect(() => {
const handleResize = () => setWidth(window.innerWidth);
window.addEventListener("resize", handleResize);
return () => {
window.removeEventListener("resize", handleResize);
};
});
return width;
};
const TestGraph = () => {
const width = useWindowWidth();
return (
<HoursGraphWrapper>
<ResponsiveLine
data={[
{
id: "A",
data: [
{ x: "2019-01-11", y: 11 },
{ x: "2019-01-12", y: 20 },
{ x: "2019-01-13", y: 24 },
{ x: "2019-01-14", y: 25 },
{ x: "2019-01-15", y: 15 },
{ x: "2019-01-16", y: 50 },
{ x: "2019-01-17", y: 30 },
{ x: "2019-01-18", y: 31 }
]
},
{
id: "B",
data: [
{ x: "2019-01-11", y: 30 },
{ x: "2019-01-12", y: 24 },
{ x: "2019-01-13", y: 22 },
{ x: "2019-01-14", y: 15 },
{ x: "2019-01-15", y: 35 },
{ x: "2019-01-16", y: 45 },
{ x: "2019-01-17", y: 20 },
{ x: "2019-01-18", y: 11 }
]
}
]}
colors={{ scheme: "set1" }}
xScale={{
type: "time",
format: "%Y-%m-%d",
precision: "day"
}}
xFormat="time:%Y-%m-%d"
yScale={{
type: "linear",
stacked: false
}}
axisLeft={{
format: value => `${value}hr`,
legend: "Total Hours",
legendOffset: -50,
legendPosition: "middle"
}}
axisBottom={{
format: "%b %d",
legend: "Date",
legendOffset: 36,
legendPosition: "middle",
tickValues: width < 1000 ? 5 : undefined
}}
curve="monotoneX"
enablePoints={width > 1000}
pointBorderWidth={1}
useMesh={true}
enableSlices={false}
margin={{ top: 10, right: 20, bottom: 60, left: 80 }}
animate={true}
/>
</HoursGraphWrapper>
);
};
export default TestGraph;
如果我让浏览器更宽,线条图会像你期望的那样响应,填满空间。
我的问题是,如果我使浏览器变窄,图形不会像我使其变宽时那样调整大小以填充浏览器宽度的100%。对于新的浏览器宽度来说,它仍然太宽。有趣的是,在刷新时,图形总是占据浏览器的100%。
把浏览器做宽做窄,如何让图占据浏览器的100%?
当一个应用在处理完一个请求后, 这个应用会生成一个 response 响应对象并把这个响应对象发送给终端用户 这个响应对象包含的信息有 HTTP 状态码,HTTP 头和主体内容等, 从本质上说,网页应用开发最终的目标就是根据不同的请求去构建这些响应对象。 在大多数实际应用情况下,你应该主要地去处理 response 这个 应用组件, 在默认情况下,它是一个继承自 yii\web\Response
CabalPHP 的请求(Request)和响应(Response)对象依赖 zendframework/zend-diactoros 实现了 PSR-7标准 psr/http-message 中的 Psr\Http\Message\ServerRequestInterface和Psr\Http\Message\ResponseInterface 的全部接口,同时也扩展了自己的一些实用方法方便使用
在 Hyperf 里可通过 Hyperf\HttpServer\Contract\ResponseInterface 接口类来注入 Response 代理对象对响应进行处理,默认返回 Hyperf\HttpServer\Response 对象,该对象可直接调用所有 Psr\Http\Message\ResponseInterface 的方法。 注意 PSR-7 标准为 响应(Response) 进
响应对象封装了从服务器返回到客户端的所有信息。在HTTP协议中,这些信息是包含在从服务器传输到客户端的HTTP头信息或响应的消息体中。
Response对象的属性。 Response.url 最终的URL。 Response.text 响应内容,以unicode为单位。 如果Response.encoding是None且chardet模块可用,则将猜测内容的编码。 Response.content 响应内容,以字节为单位。 Response.doc 一个PyQuery响应的内容的对象。链接默认为绝对链接。 请参阅PyQuery的文
问题内容: 我有一个响应式html布局中的现有图像映射。图像根据浏览器大小缩放,但是图像坐标显然是固定的像素大小。我必须选择哪些选项来调整图像地图坐标的大小? 问题答案: 您也可以使用svg代替图像映射。