Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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
Reactjs Recharts-如何强制图表从x=0开始?_Reactjs_Recharts - Fatal编程技术网

Reactjs Recharts-如何强制图表从x=0开始?

Reactjs Recharts-如何强制图表从x=0开始?,reactjs,recharts,Reactjs,Recharts,我正在用Recharts画一些图表。根据数据数组的长度,图表不会在x=0处开始(不是在x和y的交点处),也不会在最大值x处结束: 如何强制它始终从x=0开始并占据所有x轴 我就是这样实施的: <ResponsiveContainer width="100%" height={400}> <ComposedChart data={chartContent.content.chart}

我正在用Recharts画一些图表。根据数据数组的长度,图表不会在x=0处开始(不是在x和y的交点处),也不会在最大值x处结束:

如何强制它始终从x=0开始并占据所有x轴

我就是这样实施的:

        <ResponsiveContainer width="100%" height={400}>
            <ComposedChart
                data={chartContent.content.chart}
                //data={data}
                margin={{ top: 5, bottom: 5, left: 5 }}
            >
                <defs>
                    <linearGradient
                        id="colorBtc"
                        x1="0"
                        y1="0"
                        x2="0"
                        y2="1"
                    >
                        <stop
                            offset="5%"
                            stopColor="#ff9500"
                            stopOpacity={0.8}
                        />
                        <stop
                            offset="95%"
                            stopColor="#ff9500"
                            stopOpacity={0}
                        />
                    </linearGradient>
                    <linearGradient
                        id="colorStock"
                        x1="0"
                        y1="0"
                        x2="0"
                        y2="1"
                    >
                        <stop
                            offset="5%"
                            stopColor="#00a1e4"
                            stopOpacity={0.8}
                        />
                        <stop
                            offset="95%"
                            stopColor="#00a1e4"
                            stopOpacity={0}
                        />
                    </linearGradient>
                </defs>
                <XAxis
                    dataKey="date"
                    tickFormatter={formatDate}
                />
                <YAxis tickFormatter={formatYAxis} />
                <CartesianGrid strokeDasharray="3 3" />
                <Tooltip
                    formatter={formatTooltip}
                    labelFormatter={formatDate}
                />
                <Legend />
                <Area
                    name={t("Total amount in BTC")}
                    type="monotone"
                    dataKey="investment_total_btc"
                    stroke="#ff9500"
                    fillOpacity={1}
                    fill="url(#colorBtc)"
                />
                <Area
                    name={`${t("Total amount in")} ${
                        chartContent.content.symbol
                    }`}
                    type="monotone"
                    dataKey="investment_total_stock"
                    stroke="#00a1e4"
                    fillOpacity={1}
                    fill="url(#colorStock)"
                />
                <Line
                    name={t("Total invested in $")}
                    dataKey="invested"
                    type="monotone"
                    stroke="#ff0000"
                    dot={false}
                />
            </ComposedChart>
        </ResponsiveContainer>

不幸的是,API文档不是很清楚,我找不到解决方案


提前感谢

在我的场景中,有帮助的是将
dataMax+1
添加到XAxis组件的域参数中

根据文档所述,我假设为域数组的第一个元素添加“dataMin”会有所帮助。然而,正是
dataMax+1
为我解决了这个问题

完整片段

        <XAxis
          dataKey="date"
          name="Time"
          type="number"
          domain={["dataMin", "dataMax + 1"]}
          tickFormatter={(tickItem) => moment(tickItem).format("MMM Do YY")}
       />
moment(tickItem).format(“MMM-Do-YY”)}
/>