Python &引用#使用代理艺术家;。使用饼图(来自CSV的数据)Matplotlib格式化(原始句柄)
在饼图中添加图例后,我收到一条用户警告:Python &引用#使用代理艺术家;。使用饼图(来自CSV的数据)Matplotlib格式化(原始句柄),python,csv,matplotlib,Python,Csv,Matplotlib,在饼图中添加图例后,我收到一条用户警告: UserWarning: Legend does not support '47036560' instances. A proxy artist may be used instead. 我想添加图例以显示已使用的内存状态,并从csv文件中释放内存 csv文件: 我的代码: import matplotlib.pyplot as plt import numpy as np plt.rcParams['text.color'] = 'k' dat
UserWarning: Legend does not support '47036560' instances.
A proxy artist may be used instead.
我想添加图例以显示已使用的内存状态,并从csv文件中释放内存
csv文件:
我的代码:
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['text.color'] = 'k'
data = np.loadtxt('show-flash.csv' ,dtype=bytes, delimiter=';', usecols=(0, 1)).astype(str)
slice = data[1]
labels = data[0]
colors = ['lightskyblue', 'lightcoral']
explode = [0.05, 0]
plt.pie(slice, labels=labels, colors=colors, explode=explode, startangle=90, shadow=True, autopct='%1.1f%%')
plt.title('Show Flash\n(Bytes)')
plt.legend(slice,labels)
plt.show()
我需要这样的输出图片:
您得到的是一条警告,说明您不能将字符串用作图例句柄。提供给
plt.legend(句柄、标签)
的句柄
必须是matplotlib。获取这些艺术家的最简单方法是调用plt.pie()
完整示例:
import io
import matplotlib.pyplot as plt
import numpy as np
d = u"""USED;FREE
26932440;47036560"""
s = io.StringIO(d)
data = np.loadtxt(s ,dtype=bytes, delimiter=';', usecols=(0, 1)).astype(str)
slices = data[1]
labels = data[0]
colors = ['lightskyblue', 'lightcoral']
explode = [0.05, 0]
pie = plt.pie(slices, labels=labels, colors=colors, explode=explode, startangle=90,
shadow=True, autopct='%1.1f%%')
plt.title('Show Flash\n(Bytes)')
plt.legend(pie[0],[" ".join(a) for a in zip(labels, slices)])
plt.show()
生产
我们可以在图例中添加新的变量吗?在您的代码中有2个变量(饼图和标签),我可以添加一个新的变量吗?所以在图例中有3个变量要显示?我确实需要像我的示例一样的输出图例,它有颜色、标签和切片。它的工作方式与我想要的一样,谢谢您的回答:)
pie = plt.pie(...)
plt.legend(pie[0], labels)
import io
import matplotlib.pyplot as plt
import numpy as np
d = u"""USED;FREE
26932440;47036560"""
s = io.StringIO(d)
data = np.loadtxt(s ,dtype=bytes, delimiter=';', usecols=(0, 1)).astype(str)
slices = data[1]
labels = data[0]
colors = ['lightskyblue', 'lightcoral']
explode = [0.05, 0]
pie = plt.pie(slices, labels=labels, colors=colors, explode=explode, startangle=90,
shadow=True, autopct='%1.1f%%')
plt.title('Show Flash\n(Bytes)')
plt.legend(pie[0],[" ".join(a) for a in zip(labels, slices)])
plt.show()