Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.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_Python 3.x_Matplotlib_Legend_Scatter Plot - Fatal编程技术网

Python 如何为彩色散点图创建图例而不是色条?

Python 如何为彩色散点图创建图例而不是色条?,python,python-3.x,matplotlib,legend,scatter-plot,Python,Python 3.x,Matplotlib,Legend,Scatter Plot,我想在具有多种颜色的散点图中添加图例,而不是颜色条 我在找类似散点图的东西。 我当前的图形如下所示: 我想知道是否可以像在第二个子图中一样,在第一个子图中添加一个图例,而不是一个颜色条 创建散点图的函数: def scatter_it(x):#x=8 für Monate,x=9 für Jahre “”“法布里彻-马克隆单体bzw.Jahre的朋克图。”“” plt.图(“车站:{0},莫纳特(e):{1},贾哈尔(e):{2}”。格式(车站,月,年)) plt.style.use('sea

我想在具有多种颜色的散点图中添加图例,而不是颜色条

我在找类似散点图的东西。 我当前的图形如下所示:

我想知道是否可以像在第二个子图中一样,在第一个子图中添加一个图例,而不是一个颜色条

创建散点图的函数:

def scatter_it(x):#x=8 für Monate,x=9 für Jahre
“”“法布里彻-马克隆单体bzw.Jahre的朋克图。”“”
plt.图(“车站:{0},莫纳特(e):{1},贾哈尔(e):{2}”。格式(车站,月,年))
plt.style.use('seaborn-whitegrid'))
如果x==8:
#将标准颜色设置为cmap彩虹的第一种颜色
farben=plt.cm.get_cmap('rainbow',13)
newcolors=farben(np.linspace(0,1,13))
b=np.数组([31/256,19/256,180/256,1])#标准颜色#蓝色:31/119/180#黑色:0/0/0
新颜色[:1,:]=b
newcmp=列表颜色映射(newcolors)
cmap=newcmp
其他:
cmap='tab20'
plt.子地块(2,1,1)
plt.title(“艺术与关系:肯德尔${\mathrm{T}}}\u b$\n”+
“关系:”+str(r_tp[0])+
“\np Wert(2-seitig):”+str(r_tp[1])+
“\n站点:{0},Monat(e):{1},Jahr(e):{2}\n”。格式(站点、月份、年份),
loc='left',wrap=True)
sct=plt.散射(主阵列过滤器[:,1],#Marsdistanz(在AE中)
主阵列过滤器[:,2],#温度(单位:摄氏度)
c=主阵列过滤器[:,x],#单体bzw.Jahre
cmap=plt.cm.get_cmap(cmap,np.unique(主数组过滤器[:,x])[-1]+1-np.unique(主数组过滤器[:,x])[0]),
#在n(=最大-最小值)中显示彩色地图彩虹od表20,在ggf中显示为benötitte Abschnitte auf#leider auch。nicht benötitte Zwischenschritte
vmin=master_arrayFilter[np.argmin(master_arrayFilter[:,x],轴=0),x]-.5,
#我们的目标和目标是什么
vmax=master_arrayFilter[np.argmax(master_arrayFilter[:,x],轴=0),x]+.5)
#vmax Gibres Ende der Skala and setzt de Markierung mittig
plt.xlabel(“AE中的Marsdistanz(1 AE=149.597.870,7 km)”)
plt.ylabel(“摄氏温度”)#für Niderschlag bzw。索尼登·安帕森。
#plt.紧_布局()
clb=plt.colorbar(sct,ticks=np.arange(master_arrayFilter[np.argmin(master_arrayFilter[:,x],axis=0),x]-1,
主阵列过滤器[np.argmax(主阵列过滤器[:,x],轴=0,x])+1)
如果x==8:
y=“莫纳特(e)”
其他:
y=“Jahr(e)”
clb.ax.set_标题(y)
#z=np.unique(主数组过滤器[:,x])
#def make_代理(zvalue,**kwargs):
#颜色=cmap
#返回行2D([0,1],[0,1],颜色=颜色,**kwargs)
#代理=[为z中的项目制作代理(项目,线宽=2)]
#plt.图例(x的代理[str(int(x)),以月为单位],
#loc='右上角',frameon=True,title=y)
plt.子地块(2,1,2)
如果不是三个月:
md_图(主数组[:,0],主数组[:,1])#图
minmaxmarker(主数组[:,0],主数组[:,1])Punkte
其他:
md#U绘图3(主数组[:,0],主数组[:,1],主数组[:,8],月)#图mit Färbung
minmaxmarker(主数组[:,0],主数组[:,1])Punkte
md_plot2(主数组[:,0],主数组[:,1],主数组[:,6])#图mit Färbung
minmaxmarker(主数组[:,0],主数组[:,1])Punkte
plt.show()
plt.close()
一无所获
我禁用了我尝试过但失败的东西

以下是所使用的
主数组的摘录:

[211]中的
:打印(主数组)
[1.89301010e+07 1.23451036e+00-8.10000000e+00…1.00000000e+00
1.00000000e+001.89300000e+03]
[1.89301020e+07 1.24314818e+00-8.50000000e+00…2.00000000e+00
1.00000000e+001.89300000e+03]
[1.89301030e+07 1.25179997e+00-9.70000000 E+00…3.00000000 E+00
1.00000000e+001.89300000e+03]
...
[2.01903100e+07 1.84236878e+00 7.90000000e+00…1.00000000 E+01
3.00000000 E+00 2.01900000e+03]
[2.01903110e+07 1.85066892e+00 5.50000000e+00…1.10000000e+01
3.00000000 E+00 2.01900000e+03]
[2.01903120e+07 1.85894904e+00 9.40000000e+00…1.2000000E+01
3.00000000 E+00 2.01900000e+03]]

因为您的示例依赖于一些外部变量,所以我创建了另一个示例。在调用scatter时设置label参数,然后可以直接调用
legend

import matplotlib.pyplot as plt
import numpy as np

请看一看

,因为您的示例依赖于一些外部变量,所以我创建了另一个示例。在调用scatter时设置label参数,然后可以直接调用
legend

import matplotlib.pyplot as plt
import numpy as np

可以看一下

您是否尝试过使用
ax.legend
?您可能会在这里看到:当我添加
plt.legend(title=y,handles=[sct])
时,结果是:
/home/joker/anaconda3/lib/python3.7/site packages/matplotlib/legend.py:449:UserWarning:handle有一个无法自动添加到图例中的“\u collection0”标签图例。“.format(句柄、标签))
您是否尝试过使用
ax.legend
?您可能会在这里看到:当我添加
plt.legend(title=y,handles=[sct])
时,结果是:
/home/joker/anaconda3/lib/python3.7/site packages/matplotlib/legend.py:449:UserWarning:handle有一个无法自动添加到图例中的“\u collection0”标签图例。格式(手柄、标签))