Phl*_*lya 4 python matplotlib seaborn
我正在用seaborn's密谋regplot.据我所知,它pyplot.scatter在幕后使用.所以我假设如果我将散点图的颜色指定为序列,那么我就可以调用plt.colorbar,但它似乎不起作用:
sns.regplot('mapped both', 'unique; repeated at least once', wt, ci=95, logx=True, truncate=True, line_kws={"linewidth": 1, "color": "seagreen"}, scatter_kws={'c':wt['Cis/Trans'], 'cmap':'summer', 's':75})
plt.colorbar()
Traceback (most recent call last):
File "<ipython-input-174-f2d61aff7c73>", line 2, in <module>
plt.colorbar()
File "/usr/local/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 2152, in colorbar
raise RuntimeError('No mappable was found to use for colorbar '
RuntimeError: No mappable was found to use for colorbar creation. First define a mappable such as an image (with imshow) or a contour set (with contourf).
Run Code Online (Sandbox Code Playgroud)
为什么它不起作用,有没有办法绕过它?
如果有一种简单的方法来生成尺寸的图例,我会使用点的大小而不是颜色
另一种方法是
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
points = plt.scatter(tips["total_bill"], tips["tip"],
c=tips["size"], s=75, cmap="BuGn")
plt.colorbar(points)
sns.regplot("total_bill", "tip", data=tips, scatter=False, color=".1")
Run Code Online (Sandbox Code Playgroud)

regplot的颜色参数将单一颜色应用于regplot元素(这在seaborn文档中).要控制散点图,您需要传递kwargs:
import pandas as pd
import seaborn as sns
import numpy.random as nr
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
data = nr.random((9,3))
df = pd.DataFrame(data, columns=list('abc'))
out = sns.regplot('a','b',df, scatter=True,
ax=ax,
scatter_kws={'c':df['c'], 'cmap':'jet'})
Run Code Online (Sandbox Code Playgroud)
然后你从AxesSubplot seaborn返回中获取可映射的东西(由scatter创建的集合),并指定你想要一个用于mappable的颜色条.请注意我的TODO评论,如果您计划通过对图表的其他更改来运行此评论.
outpathc = out.get_children()[3]
#TODO -- don't assume PathCollection is 4th; at least check type
plt.colorbar(mappable=outpathc)
plt.show()
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
9344 次 |
| 最近记录: |