Nano Hash - криптовалюты, майнинг, программирование

Цветовые градиенты в R в PDF и растровом выводе

Я изо всех сил пытаюсь получить визуально приемлемый цветовой градиент в R (см. -outlines/42294324#42294324">здесь подробное описание моего конкретного случая). Короче говоря, проблема заключается в том, что, хотя вывод в окне R выглядит нормально, в PDF-файлах видны тонкие белые линии между сегментами, используемые для создания градиента.

n <- 100
cc <- colorRampPalette(c("red", "blue"))(n)
plot.new()
par(mar=rep(0,4))
sapply(1:n, function(i) rect((i-1)/n, 0, i/n, 1, col=cc[i], border=NA))
dev.copy2pdf(file="test.pdf")

Вот результат:

скриншот 1

Вы можете видеть тонкие, белые линии. Их расположение зависит от масштаба, поэтому я предполагаю, что они являются артефактом того, как отображается PDF. Вот то же самое в другом увеличении:

скриншот 2

К сожалению, эти линии видны и на распечатке. Я предполагаю, что проблема может заключаться в том, как округляются координаты в PDF, когда векторная графика преобразуется в растровое изображение для отображения или печати.

Возможным решением было бы использование сегментов, которые пересекаются друг с другом. Это приемлемо только для сплошных цветов; к сожалению, я также хотел бы использовать прозрачные цвета в градиентах.

Что я могу сделать, чтобы улучшить вывод в формате PDF?


  • не могли бы вы установить цвет границы на нормальный, как у сегмента border=cc[i] 24.02.2017
  • нет, та же проблема с прозрачностью. На самом деле, я пытался решить это так раньше. Вот почему это не сработало: stackoverflow.com/questions/41088751/ 24.02.2017
  • Я запустил ваш код, но не вижу белых линий. Ни в устройстве x11, ни в выходном pdf (Foxit pdf)! попробуй с другими pdf приложениями 27.02.2017

Ответы:


1

Кажется, это проблема исключительно из-за рендерера. Например.:

введите здесь описание изображения

Я не верю, что вы можете что-то изменить в PDF, чтобы кардинально решить проблему. В моем случае Adobe Acrobat выглядел хорошо при любом уровне масштабирования, кроме очень большого (мне пришлось увеличить масштаб до 3200%, чтобы увидеть белые линии).

Кроме того, Chrome и Microsoft Edge, похоже, работали хорошо.

24.02.2017
  • Спасибо! это было полезно. 27.02.2017

  • 2

    Вы пробовали это решение? Первый прямоугольник займет больше места, а второй будет нанесен на первый, что позволит избавиться от белых линий позади него. В pdf, который я получил, нет белых линий.

    n <- 100
    cc <- colorRampPalette(c("red", "blue"))(n)
    plot.new()
    par(mar=rep(0,4))
    sapply(1:n, function(i) rect((i-1)/n, 0, (i + 1)/n, 1, col=cc[i], border=NA))
    dev.copy2pdf(file="test.pdf")
    

    введите здесь описание изображения Это увеличено до 6400 процентов.

    24.02.2017
  • Да, прочитайте абзац, начинающийся с A возможно, в моем исходном посте. Проблема в том, что тогда вы получите темные полосы, если будете использовать прозрачные цвета. 24.02.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..