Я только что это придумал. Я решил использовать свойство: after элемента div вокруг графика и некоторое позиционирование CSS.
Я добавил адаптивный контейнер (не обязательно, но позволяет масштабировать с различными разрешениями) вокруг вашей диаграммы. :
<ResponsiveContainer className="watermark" width="100%" height={300} >
<LineChart data={data} margin={{top: 5, right: 30, left: 20, bottom: 5}}>
<XAxis dataKey="name"/>
<YAxis/>
<CartesianGrid strokeDasharray="3 3"/>
<Tooltip/>
<Legend />
<Line type="monotone" dataKey="pv" stroke="#8884d8" activeDot={{r: 8}}/>
<Line type="monotone" dataKey="uv" stroke="#82ca9d" />
</LineChart>
</ResponsiveContainer>
Затем я добавил следующие CSS обновления:
.watermark {
position: relative;
}
.watermark:after {
content: "";
display: block;
pointer-events: none;
width: 210px;
height: 150px;
position: absolute;
top: 0px;
right: 30px;
background-image: url('https://cdn.iconscout.com/icon/premium/png-256-thumb/cat-131-378998.png');
background-size: auto;
background-position: 30px 30px;
background-repeat: no-repeat;
opacity: 0.1;
}
Вот результат:
Вы можете см. ниже в JSfiddle (по некоторым причинам он иногда выдает ошибку): Обновлен jsfiddle