#javascript #reactjs #recharts
#javascript #reactjs #перезаряжается
Вопрос:
Я пытаюсь изменить цвет обводки по оси y на линейный градиент при перезарядке. Я знаю, я могу определить в элементе defs и внутри linerGradient
элемента define. но когда я устанавливаю значение обводки равным stroke: "url(#linear)"
, обводка по оси y исчезает. это сработало для меня на линейном графике, но не сработало на оси y
<defs>
<linearGradient
id="linear"
x1="84"
y1="5"
x2="84.1"
y2="470"
>
<stop offset="0%" stopColor="#05a" />
<stop offset="100%" stopColor="#0a5" />
</linearGradient>
</defs>
<YAxis
tickMargin={8}
tickLine={false}
label={{
value: props.yAxisLabel,
position: "insideBottomLeft",
angle: -90,
offset: 0,
fill: "#A5A5A5",
}}
tick={{ fill: "#A5A5A5" }}
ticks={[60, 120]} //TODO: change to function
strokeWidth={10}
// stroke="#FF3C06"
stroke="url(#linear)"
style={{
strokeLinecap: "round",
}}
/>
любая помощь?
Ответ №1:
Я только что решил это, добавив fill="url(#linear)"
вместо stroke="url(#linear)"
Ответ №2:
Если вы используете LinearGradient для yAxis, вам нужно добавить к вашему LinearGradient еще одну опору — gradientUnits
<linearGradient gradientUnits="userSpaceOnUse"/>
Таким образом, это сделает видимой линию оси, а в компоненте yAxis вы можете указать что-то вроде этого ниже.Поскольку axisLine prop принимает только bool или object, вы можете переопределить обводку, чтобы указать на ваш идентификатор градиента.
<YAxis
axisLine={{ stroke: "url(#<YOUR_GRADIENT_ID_NAME>)" }}
/>