我想使散点图上的点的颜色对应于空隙分数的值,但是在对数标度上以放大差异.我这样做了,但是现在当我执行plt.colorbar()时,它会显示空白分数的对数,当我真的想要实际的空隙分数时.如何使用属于[0.00001,1]的空白分数的适当标签在色条上进行对数刻度?
这是我现在拥有的图的图像,但是空隙分数颜色条没有被适当地标记为对应于真实的空隙分数,而不是它的对数.

fig = plt.figure()
plt.scatter(x,y,edgecolors='none',s=marker_size,c=np.log(void_fraction))
plt.colorbar()
plt.title('Colorbar: void fraction')
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我正在绘制箭头图,我的代码使用外部文件,如下所示:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
from pylab import rcParams
data=np.loadtxt(r'data.dat')
x = data[:,0]
y = data[:,1]
u = data[:,2]
v = data[:,3]
plt.quiver(x, y, u, v, angles='xy', scale_units='xy', scale=1, pivot='mid',color='g')
Run Code Online (Sandbox Code Playgroud)
数据文件基本上如下:
0 0 0 1
0 1 1 0
1 0 1 0
1 1 0 1
Run Code Online (Sandbox Code Playgroud)
这会产生一个看起来像的情节
有没有办法用不同的箭头方向绘制不同的颜色?
Ps.:我的数据文件中有更多的箭头,这是一个不太合乎逻辑的句子,就像我使用的那样.
我正在尝试在图形中添加颜色条,但我不明白它是如何工作的.问题是我通过以下方式制作自己的颜色代码:
x = np.arange(11)
ys = [i+x+(i*x)**2 for i in range(11)]
colors = cm.rainbow(np.linspace(0, 1, len(ys)))
Run Code Online (Sandbox Code Playgroud)
并colors[i]会给我一个新的颜色.然后我使用(自制)函数来选择相关数据并相应地绘制它们.这看起来像这样:
function(x,y,concentration,temperature,1,37,colors[0])
function(x,y,concentration,temperature,2,37,colors[1])
# etc
Run Code Online (Sandbox Code Playgroud)
现在我想在颜色条中添加颜色,我可以更改标签.我该怎么做呢?
我已经看过几个例子,你将所有数据绘制成一个数组,带有自动颜色条,但是在这里我逐个绘制数据(通过使用函数来选择相关数据).
编辑:
函数(x,y,浓度,温度,1,37,颜色[0])看起来像这样(简化):
def function(x,y,c,T,condition1,condition2,colors):
import matplotlib.pyplot as plt
i=0
for element in c:
if element == condition1:
if T[i]==condition2:
plt.plot(x,y,color=colors,linewidth=2)
i=i+1
return
Run Code Online (Sandbox Code Playgroud)