在matplotlib中设置默认散点图标记

时间:2016-04-06 09:58:14

标签: python matplotlib

我正在寻找一种设置plt.scatter()默认标记的方法 - 我已尝试在matplotlibrc文件中设置此行:

lines.marker    : +

但这似乎不会更改默认标记,即圆圈。

http://matplotlib.org/users/customizing.html似乎没有任何其他明显的参数来设置;有谁知道实际上是否可以设置散点图的默认标记?

1 个答案:

答案 0 :(得分: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()

请注意评论中的警告,因为我不确定何时调用样板。(您只需要尝试一下并查看)​​但是在实际更改源代码之前考虑一下将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()