2016-04-06 3 views
1

Я ищу способ, чтобы установить маркер по умолчанию для plt.scatter() - Я попытался установить эту строку в моем matplotlibrc файле:Настройка Разброс по умолчанию участок маркер в Matplotlib

lines.marker : + 

, но это не представляется для изменения маркера по умолчанию, который представляет собой круг.

http://matplotlib.org/users/customizing.html, как представляется, не имеет другого очевидного параметра; кто-нибудь знает, действительно ли можно установить маркер по умолчанию для графика рассеяния?

ответ

0

Вы можете сделать это путем изменения непосредственно кода в site-packages/matplotlib/pyplot.py:

# This function was autogenerated by boilerplate.py. Do not edit as 
# changes will be lost 
@_autogen_docstring(Axes.scatter) 
def scatter(x, y, s=20, c=None, marker='+', cmap=None, norm=None, vmin=None, 
      vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, 
      hold=None, data=None, **kwargs): 
    ax = gca() 
    # allow callers to override the hold state by passing hold=True|False 
    washold = ax.ishold() 

виду предупреждение в комментарии, так как я не уверен, когда boilerplate.py вызывается. (Вам просто нужно попробовать и посмотреть) Однако, прежде чем на самом деле изменения источника рассмотреть перекрывающихся plt.scatter с собственным вызовом:

import matplotlib.pyplot as plt 
import numpy as np 

class scatter(): 
    def __init__(self,x,y): 
     self.marker = '+' 
     plt.scatter(x,y,marker=self.marker) 

x,y = np.random.randint(0,100,30),np.random.randint(0,100,30) 
scatter(x,y) 
plt.show() 
+0

Это, кажется, работает хорошо, но я не думаю, что я должен быть непосредственно изменяя код matplotlib! Я поднял вопрос здесь, если кому-то интересно: https://github.com/matplotlib/matplotlib/issues/6272 –

+0

@David Stansby Я согласен, поэтому мое предложение о «перекрытии» функции рассеяния. Из исходного кода я не думаю, что у вас есть другой способ добиться этого, параметр по умолчанию для маркера довольно прост (подумал, что в Python я могу не заметить какие-то процедуры). – armatita