При построении точечных диаграмм в matplotlib и сохранении в векторном формате, в данном случае PDF, размер сгенерированного файла масштабируется с количеством точек.
Поскольку у меня много точек с большим количеством перекрытийточки, я установил alpha=.2
, чтобы увидеть, насколько плотно распределены точки.В центральных областях это приводит к отображению цвета, равного виду alpha=1
.
. Есть ли способ «обрезать» эти области (например, путем объединения точек перекрытия на указанном расстоянии) при сохранении рисунка ввекторизованный файл, таким образом, вместо сохранения каждой отдельной точки сохраняется какая-то область?
Что я забыл упомянуть: так как мне нужно построить корреляцию нескольких переменных, мне нужна (nxn) матрица точечной диаграммыгде n
- количество переменных.Это препятствует использованию hexbin
или других методов, так как мне придется самостоятельно создавать полную сетку графиков.
Например, как в:
fig_sc = plt.figure(figsize=(5, 5))
ax_sc = fig_sc.gca()
ax_sc.scatter(
np.random.normal(size=100000),
np.random.normal(size=100000),
s=10, marker='o', facecolors='none', edgecolors='black', alpha=.3)
fig_sc.savefig('test.pdf', format='pdf')
Это приводит кразмер файла примерно 1,5 МБ, поскольку каждая точка сохраняется.Можно ли как-то «уменьшить» это изображение, комбинируя перекрывающиеся точки?
Я пробовал несколько вариантов, таких как установка dpi=300
и transparence=False
, но, поскольку PDF сохраняет фигуру как векторизованное изображение, это, естественно, неизменить что-либо.
Вещи, которые могут работать, но имеют недостатки:
- Шестнадцатеричные графики: Работает для одного точечного графика, если разрешение и карта правильно настроены, но я хочу построитьматрица рассеяния с (nxn) точками рассеяния.Афаик отсутствует в матрице шестнадцатеричной матрицы.
- сохранение в растеризованном формате: графики предназначены для журнала, который запрашивает векторизованные графики везде, где это возможно.Таким образом, я бы хотел избежать сохранения растрового изображения.
- случайное извлечение частей данных: может работать, но изменит внешний вид графиков.
Любойидеи?
Заранее спасибо!