Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中编辑标记形状_Python_Matplotlib_Scatter Plot - Fatal编程技术网

在python中编辑标记形状

在python中编辑标记形状,python,matplotlib,scatter-plot,Python,Matplotlib,Scatter Plot,我在CDF图的x轴上使用菱形指针来显示一些数据的分布。由于数据量大,这些点靠得很近,无法区分。我想知道是否有办法使散点图中的菱形标记更加尖锐 您可以从路径定义自己的标记,请参阅 您可以从路径定义自己的标记,请参阅 虽然我喜欢@Stef创建新标记符号的答案,但您也可以根据现有符号到其他点的距离调整其大小: 导入matplotlib.pyplot作为plt 将numpy作为np导入 从sklearn.neights导入近邻 #创建随机数据 x=np.rand.rand(10) y=np.one(le

我在CDF图的x轴上使用菱形指针来显示一些数据的分布。由于数据量大,这些点靠得很近,无法区分。我想知道是否有办法使散点图中的菱形标记更加尖锐


您可以从路径定义自己的标记,请参阅


您可以从路径定义自己的标记,请参阅


虽然我喜欢@Stef创建新标记符号的答案,但您也可以根据现有符号到其他点的距离调整其大小:

导入matplotlib.pyplot作为plt
将numpy作为np导入
从sklearn.neights导入近邻
#创建随机数据
x=np.rand.rand(10)
y=np.one(len(x))
#开放图形+轴
图,axs=plt子批次(1,2)
#标准散点图
MarkerSize=40
axs[0]。散布(x,y,s=MarkerSize)
#重新排列数据
xy=[]
对于拉链中的x1,y1(x,y):
xy.追加([x1,y1])
#查找与自身最近的邻居(跳过第一列,因为它查找的元素完全相同,即距离为零)
dst,idx=最近邻点(n_邻点=2).拟合(xy).kneighbors(xy)
dst=dst[:,1]
#为标记大小创建一个向量
S=dst/dst.max()*标记化
#调整标记大小的散点图
axs[1]。散射(x,y,s=s)


我使用scikit learn计算点之间的最小距离,并将其作为缩放因子传递给
matplotlib.pyplot.scatter()
的size参数
s=
。这是一个关于
scatter()

中标记大小参数的小教程。虽然我喜欢@Stef创建新标记符号的答案,但您也可以根据现有符号到其他点的距离调整其大小:

导入matplotlib.pyplot作为plt
将numpy作为np导入
从sklearn.neights导入近邻
#创建随机数据
x=np.rand.rand(10)
y=np.one(len(x))
#开放图形+轴
图,axs=plt子批次(1,2)
#标准散点图
MarkerSize=40
axs[0]。散布(x,y,s=MarkerSize)
#重新排列数据
xy=[]
对于拉链中的x1,y1(x,y):
xy.追加([x1,y1])
#查找与自身最近的邻居(跳过第一列,因为它查找的元素完全相同,即距离为零)
dst,idx=最近邻点(n_邻点=2).拟合(xy).kneighbors(xy)
dst=dst[:,1]
#为标记大小创建一个向量
S=dst/dst.max()*标记化
#调整标记大小的散点图
axs[1]。散射(x,y,s=s)

我使用scikit learn计算点之间的最小距离,并将其作为缩放因子传递给
matplotlib.pyplot.scatter()
的size参数
s=
。是关于
scatter()
中标记大小参数的小教程

import matplotlib.pyplot as plt
import matplotlib.path as mpath

pointed_diamond = mpath.Path([[0,-.5],[-.1,0],[0,.5],[.1,0],[0,-.5]], [1,2,2,2,79])
plt.plot([1,2,3], marker=pointed_diamond, markersize=10)