如何解决python - 如何在python中的一个图形中根据不同绘图的一个变量获得不同的线条颜色?
其中单个图的颜色由 matplotlib 自动决定。获取这个的代码很简单:
for i in range(len(some_list)):
x,y = some_function(dataset,some_list[i])
plt.plot(x,y)
现在假设所有这些行都依赖于第三个变量 z。我想包括这些信息,用一种颜色绘制给定的线条,提供有关 z 大小的信息,可能使用图右侧的颜色图和颜色条。你会建议我做什么?我排除使用图例,因为在我的数字中,我有更多的线条,我正在展示的线条。我能找到的所有信息都是关于如何用不同颜色绘制一条线,但这不是我要找的。我提前谢谢你!
解决方法
这里有一些代码,在我看来,你可以很容易地适应你的问题
import numpy as np
import matplotlib.pyplot as plt
from random import randint
# generate some data
N,vmin,vmax = 12,20
rd = lambda: randint(vmin,vmax)
segments_z = [((rd(),rd()),(rd(),rd()) for _ in range(N)]
# prepare for the colorization of the lines,# first the normalization function and the colomap we want to use
norm = plt.Normalize(vmin,vmax)
cm = plt.cm.rainbow
# most important,plt.plot doesn't prepare the ScalarMappable
# that's required to draw the colorbar,so we'll do it instead
sm = plt.cm.ScalarMappable(cmap=cm,norm=norm)
# plot the segments,the segment color depends on z
for p1,p2,z in segments_z:
x,y = zip(p1,p2)
plt.plot(x,y,color=cm(norm(z)))
# draw the colorbar,note that we pass explicitly the ScalarMappable
plt.colorbar(sm)
# I'm done,I'll show the results,# you probably want to add labels to the axes and the colorbar.
plt.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。