我想要的是非常简单.我有一个名为"logo.png"的小图像文件,我希望在我的图的左上角显示.但你无法在matplotlib的示例库中找到任何示例
我使用django,我的代码是这样的
def get_bars(request)
...
fig = Figure(facecolor='#F0F0F0',figsize=(4.6,4))
...
ax1 = fig.add_subplot(111,ylabel="Valeur",xlabel="Code",autoscale_on=True)
ax1.bar(ind,values,width=width, color='#FFCC00',edgecolor='#B33600',linewidth=1)
...
canvas = FigureCanvas(fig)
response = HttpResponse(content_type='image/png')
canvas.print_png(response)
return response
Run Code Online (Sandbox Code Playgroud)
有任何想法吗??提前thxs
我有以下字典:
a = {'?': 10, '???': 23, '': 13, '': 10, '': 13}
Run Code Online (Sandbox Code Playgroud)
我想将表情符号绘制为条形图,然后在条形图上绘制它们.起初我喜欢这里(带annotate
),但它看起来很糟糕,而且它不支持一些表情符号.
import matplotlib.pyplot as plt
ax = plt.subplot(111)
ax.bar(range(1,6), a.values())
for label, x, y in zip(a.keys(), range(1,6), a.values()):
plt.annotate(
label,
xy=(x, y), xytext=(10,10),
textcoords='offset points', ha='right', va='bottom',
bbox=dict(boxstyle='round,pad=0.5', alpha=0),
fontname='Segoe UI Emoji',
fontsize=20)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.set_xticks([])
plt.show()
Run Code Online (Sandbox Code Playgroud)
正如我所说,看起来很糟糕:
我如何绘制表情符号,以便matplotlib看起来很好看?
最好的办法是使用不同的字体在matplotlib将支持这些表情符号(我试图用一些不同的值plt.rcParams['font.family']
,但没有成功),但如果不存在,它图像将工作太(但如何?)
我不想开始网络抓取图像并标记它们(因为我很确定有人已经这样做了).
我正在使用python 3,Spyder IDE,matplotlib版本2.0.2和anaconda.
有什么建议?
我想在图例中使用图像而不是标签.
例如,我画了2行并显示了一个图例:
import matplotlib.pyplot as plt
plt.plot([1,2],label="first_image")
plt.plot([2,1],label="second_image")
plt.legend()
plot.show()
Run Code Online (Sandbox Code Playgroud)
但我希望有这样的东西:
请注意,这不是matplotlib图例中插入图像的重复,我的问题是"将标签更改为图像",而另一个是"将图例的符号更改为图像"
我在我的图表中使用FontAwesome,每个数据点都是FontAwesome字体中的符号,显示为图标.因此,在图例中,我想使用文本(FontAwesome中的符号)来描述项目.
我使用的代码如下:
from matplotlib.patches import Patch
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
ax = plt.gca()
ax.axis([0, 3, 0, 3])
prop = fm.FontProperties(fname='FontAwesome.otf', size=18)
ax.text(x=0, y=0, s='\uf1c7', color='r', fontproperties=prop)
ax.text(x=2, y=0, s='\uf050', color='g', fontproperties=prop)
plt.legend(handles=[Patch(color='r', label='label1'), Patch(color='g', label='label2')])
Run Code Online (Sandbox Code Playgroud)
所以我想要做的是将图例中的颜色条替换为与图中相同的图标.
我使用的句柄是补丁列表.但我发现在Patch中添加文本很难.我发现这里有一个很好的解决方案可以将图片添加到图例中:在matplotlib图例中插入图片
我已尝试在该答案中使用TextArea替换BboxImage,但它不起作用,TextArea不支持像axis.text这样的fontproperties.
那么有没有一种方法可以在图例中使用文字而不是标记?