python – Matplotlib散点图和颜色贴图的问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Matplotlib散点图和颜色贴图的问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1208字,纯文字阅读大概需要2分钟。
内容图文
![python – Matplotlib散点图和颜色贴图的问题](/upload/InfoBanner/zyjiaocheng/806/acfcf47248dd4787a18effe7205d6847.jpg)
我正在开发一个项目,涉及将colormaps应用于matplotlib中生成的散点图.我的代码按预期工作,除非生成的散点图恰好有四个点.这在以下代码中说明:
import numpy as np
import matplotlib.pyplot as plt
cmap = plt.get_cmap('rainbow_r')
z = np.arange(20)
plt.close()
plt.figure(figsize=[8,6])
for i in range(1,11):
x = np.arange(i)
y = np.zeros(i) + i
plt.scatter(x, y, c=cmap(i / 10), edgecolor='k', label=i, s=200)
plt.legend()
plt.show()
此代码生成以下图表:
每行应由相同颜色的点组成,但对于具有四个点的行则不是这种情况.
我假设它与从colormap中选择的颜色作为4个浮点数的元组返回的事实有关,如下所示:
print(cmap(0.4))
>> (0.69999999999999996, 0.95105651629515364, 0.58778525229247314, 1.0)
假设这是问题的根源,我不知道如何解决它.
解决方法:
这是一个常见的陷阱,因此the documentation特别提到它:
Note that
c
should not be a single numeric RGB or RGBA sequence because that is indistinguishable from an array of values to be colormapped.
它还直接为您提供解决方案:
c
can be a 2-D array in which the rows are RGB or RGBA, however, including the case of a single row to specify the same color for all points.
在这种情况下:
c=np.atleast_2d(cmap(i/10.))
当然,另一种选择是将颜色指定为字符串,以便解决这种不确定性.
c = matplotlib.colors.rgb2hex(cmap(i/10.))
内容总结
以上是互联网集市为您收集整理的python – Matplotlib散点图和颜色贴图的问题全部内容,希望文章能够帮你解决python – Matplotlib散点图和颜色贴图的问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。