|
|
|
@ -49,7 +49,7 @@ namespace svg {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Увеличиваем максимальную ширину для лучшего отображения
|
|
|
|
|
|
|
|
|
|
double max_width = IMAGE_WIDTH - TEXT_WIDTH - 100;
|
|
|
|
|
double scale = max_width / max_count;
|
|
|
|
|
|
|
|
|
@ -57,23 +57,22 @@ namespace svg {
|
|
|
|
|
for (size_t bin : bins) {
|
|
|
|
|
double width = bin * scale;
|
|
|
|
|
|
|
|
|
|
// Подпись значения (крупнее и четче)
|
|
|
|
|
|
|
|
|
|
out << "<text x='" << TEXT_LEFT << "' y='" << top + TEXT_BASELINE + 15
|
|
|
|
|
<< "' font-size='14' fill='black'>" << bin << "</text>\n";
|
|
|
|
|
|
|
|
|
|
// Основной столбец
|
|
|
|
|
|
|
|
|
|
rect(out, TEXT_WIDTH, top, width, BIN_HEIGHT, "#333333", "#4CAF50");
|
|
|
|
|
|
|
|
|
|
// Пунктирная линия (толще и контрастнее)
|
|
|
|
|
|
|
|
|
|
out << "<line x1='" << TEXT_WIDTH << "' y1='" << top + BIN_HEIGHT/2
|
|
|
|
|
<< "' x2='" << TEXT_WIDTH + width << "' y2='" << top + BIN_HEIGHT/2
|
|
|
|
|
<< "' stroke='white' stroke-width='3' "
|
|
|
|
|
<< "stroke-dasharray='" << dash_length << "," << gap_length << "' />\n";
|
|
|
|
|
|
|
|
|
|
top += BIN_HEIGHT + 10; // Добавляем отступ между столбцами
|
|
|
|
|
top += BIN_HEIGHT + 10;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Добавляем рамку вокруг всей гистограммы
|
|
|
|
|
out << "<rect x='" << TEXT_WIDTH-5 << "' y='0' width='" << max_width+10
|
|
|
|
|
<< "' height='" << top << "' fill='none' stroke='black' stroke-width='2'/>\n";
|
|
|
|
|
|
|
|
|
|