我对python还是个新手,刚刚开始使用 matplotlib 绘图,使用下面的代码,我可以绘制出这样的图:
x轴上的数字并不代表数值,而是代表样本名称。因此,它们不需要像原来那样隔开。我想通过将DataFrame
中的"Sample"
变量设置为"category"
,可以解决这个问题,但没有成功。我认为问题出在ax.bar
后面的"Sample"
参数上。但我还不知道如何解决这个问题。
# Make Sample a categorial variable instead of numeric
DataFrame['Sample'] = DataFrame['Sample'].astype('category')
#Define Unique samples
samples = DataFrame["Sample"].unique()
#Initiate plot
fig,ax = plt.subplots()
for sample in samples:
sample_df = DataFrame[DataFrame["Sample"] == sample]
ax.bar(sample, sample_df["Nucleus_Count"].mean(), yerr = sample_df["Nucleus_Count"].std())
ax.set_ylabel("Count")
ax.set_xticks(samples)
plt.show()
1条答案
按热度按时间p1tboqfb1#
如果没有数据,我无法真正重现您的问题,但我建议尝试
.astype(str)
而不是.astype('category')
。获取正确数据的另一种方法是使用
np.unique(some_array, return_counts=True)
. See here for more。