1
我試圖讓一個圖具有與默認不同的顏色映射。 dark2色彩映射對於我的數據來說看起來是最好的,但它都是用默認的顏色出來的。我錯過了什麼?將規範化的標量顏色映射應用於matplotlib圖,仍然獲取默認顏色
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from pylab import get_cmap
data = [{'a': 1, 'b': 1, 'c': 2, 'd': 0},{'a': 1, 'b': 1, 'c': 2, 'd': 0},
{'a': 1, 'b': 1, 'c': 1, 'd': 2},{'a': 1, 'b': 2.5, 'c': 1, 'd': 2},
{'a': 1.7, 'b': 2.1, 'c': 2, 'd': 0.2},{'a': 1.7, 'b': 2.1, 'c': 2, 'd': 0.2}]
cm = get_cmap('Dark2')
cnorm = matplotlib.colors.Normalize(vmin=0, vmax=len(data))
smap = matplotlib.cm.ScalarMappable(norm=cnorm, cmap=cm)
_fig, ax = plt.subplots(1, 1, figsize=(18, 8))
for lx in range(len(ax.axes.lines)):
ax.axes.lines[lx].set_color(smap.to_rgba(lx))
print('setting color for %i to %s' % (lx, smap.to_rgba(lx)))
frm = pd.DataFrame(data)
frm.plot(ax=ax)
plt.show()
您的示例代碼應該很簡單並且可以運行。就目前而言,我無法對這段代碼做任何事情(沒有導入,未定義的變量等)。 – 2014-09-26 22:16:44
另外,我認爲'ax.axes.lines'將是空的,因爲你還沒有繪製任何東西,然後當你實際繪製某些東西時,你不會(明顯地)傳遞任何顏色參數。 – 2014-09-26 22:20:20
不填充數據,但更多的代碼存在。一起工作的數據=這是合理的。 –
Mike
2014-09-26 22:52:09