我正在嘗試為不同的系列創(chuàng)建一個具有不同顏色的圖。當我嘗試將圖中的數(shù)據(jù)作為文本框添加時出現(xiàn)了問題。我使用的代碼如下:import pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport numpy as npimport scipy.stats as statsdf = pd.DataFrame({'x': [21000, 16900, 18200, 32000, 35000, 7500], 'y':[3000, 2100, 1500, 3000, 2500, 2000], 'z':['a', 'b', 'c', 'd', 'e', 'f']})fig, ax = plt.subplots(figsize=(8,6))text_list = []color_list = []for i, row in df.iterrows(): mu, sigma, group = row['x'], row['y'], row['z'] x = np.linspace(mu - 4*sigma, mu + 4*sigma, 100) sns.lineplot(x, stats.norm.pdf(x, mu, sigma), ax=ax) color = ax.get_lines()[-1].get_c() ax = plt.gca() ax.text(mu*1.05, max(stats.norm.pdf(x, mu, sigma)), group, fontsize=16, color=color) #only retrieve RGB so blank text is not too light text = r'{0}: {1} $\pm$ {2}'.format(group, mu, sigma) text_list.append(text) color_list.append(color)plt.gcf().text(0.68, 0.6, '\n'.join(text_list), bbox=dict(facecolor='white', edgecolor='black', pad=10.0, alpha=1), fontsize=14)fig.show()產(chǎn)生下圖:bbox 內(nèi)的文字都是黑色的。理想情況下,文本框中的每一行都應具有與圖中相應系列相同的顏色。我能夠在 text_box_content 和 color_list 中保存兩個文本和顏色列表。我還嘗試plt.gcf().text()在 for 循環(huán)中添加動態(tài)更新的文本位置,但為每一行創(chuàng)建邊界框,而不是為所有文本創(chuàng)建整體邊界框。如果在概念上有類似的東西會更好plt.gcf().text(zip(text_list, color_list)) 所以每條線都可以有自己的顏色?
添加回答
舉報
0/150
提交
取消