我正在尝试使用matplotlib制作一个灰度非常小的散点图.由于点密度,点数需要很小.问题是scatter()函数的标记似乎同时具有直线和填充.当标记很小时,只有线条可见,而不是填充,线条不是正确的颜色(它总是黑色).
我可以使用gnuplot获得我想要的内容:使用点pt 0 lc rgb'gray'绘制'nodes'
如何使用matplotlib scatterplot()制作非常小的灰点?
Daa*_*aan 70
scatter([1,2,3], [2,4,5], s=1, facecolor='0.5', lw = 0)
Run Code Online (Sandbox Code Playgroud)
这将markersize设置为1(s = 1),将facecolor设置为灰色(facecolor ='0.5'),将linewidth设置为0(lw = 0).
cyb*_*org 30
如果标记没有面(例如'+',不能填充'x'),则edgecolor必须设置而不是c,并且lw不应该是0:
scatter([1,2,3], [2,4,5], marker='+', edgecolor='r')
Run Code Online (Sandbox Code Playgroud)
以下将无效
scatter([1,2,3], [2,4,5], s=1, marker='+', facecolor='0.5', lw = 0)
Run Code Online (Sandbox Code Playgroud)
因为边缘/线不会显示,所以不会显示任何内容.
小智 5
您的问题的绝对最简单的答案是:使用color参数而不是c参数来设置整个标记的颜色。
比较结果时很容易看出差异:
from matplotlib import pyplot as plt
plt.scatter([1,2,3], [3,1,2], c='0.8') # marker not all gray
plt.scatter([1,2,3], [3,1,2], color='0.8') # marker all gray
Run Code Online (Sandbox Code Playgroud)
详细信息:
对于您只想使整个标记具有相同的灰色阴影的简单用例,您实际上不必担心诸如面部颜色与边缘颜色之类的事情,以及您的标记是否被定义为所有边缘或者一些边缘和一些填充。相反,只需使用color参数并知道您的整个标记将设置为您指定的单一颜色!
| 归档时间: |
|
| 查看次数: |
62852 次 |
| 最近记录: |