[英]BoxPlot failure
我在創建箱線圖時遇到了麻煩。 沒有錯誤,只是沒有顯示所有要點:
直到 513
我的代碼:
data = [df2['Counts'][0:470], df2['Counts'][471:494],df2['Counts'][495:]]
fig1, ax4 = plt.subplots()
ax4.set_title('Furter vs Krum serum')
plt.xticks([] ,['F4','Km','Liquid' ])
ax4.boxplot(data)
plt.show()
盒子 plot 缺少“Km 和液體”部分(只有一個點),並且只顯示了最大的 F4。
您的 dataframe 可能不包含您期望的信息。 或者F4
部分的范圍可能完全不同? 例如,如果Km
和Liquid
的值小 10 倍,它們將減少到接近零的一條線。
您可以打印出df2['Counts'][471:494]
和df2['Counts'][495:]
來查看值的樣子。 下面的代碼添加了一個散點圖 plot 以查看所有點。
一些備注:
array[a:b]
中的切片從a
到b-1
(類似於 python 的 range 函數)。 所以你可能想使用data = [df2['Counts'][0:471], df2['Counts'][471:495],df2['Counts'][495:]]
左右。ax.
和plt.
調用 matplotlib 函數的方式。xticks
函數,因為許多函數都嘗試設置自己的刻度。xticklabels
時,建議同時設置對應的xticks
。 在這種情況下,刻度內部編號為1, 2, 3
。這是一些示例代碼,顯示了事物如何組合在一起。 為了幫助調試,添加了散點圖 plot 以查看所有點的實際位置。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df2 = pd.DataFrame({'Counts': np.random.normal(0.02, 0.002, 513)})
data = [df2['Counts'][0:471], df2['Counts'][471:495], df2['Counts'][495:]]
fig1, ax4 = plt.subplots()
ax4.boxplot(data)
for i in range(3):
ax4.scatter(np.repeat([i+1], len(data[i])), data[i])
ax4.set_title('Furter vs Krum serum')
ax4.set_xticks([1, 2, 3])
ax4.set_xticklabels(['F4', 'Km', 'Liquid'])
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.