首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BoxPlot失效

BoxPlot失效
EN

Stack Overflow用户
提问于 2020-07-19 11:20:21
回答 1查看 42关注 0票数 0

我在制作一个盒式剧集时遇到了麻烦。没有错误,只是没有显示出所有的要点:

到513

我的代码:

代码语言:javascript
复制
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()

方框图缺少了"Km和which“部分(只有一个点),只显示了F4,这是最大的集合。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-19 12:21:32

可能您的数据不包含您所期望的信息。或者F4部分有一个完全不同的范围?例如,如果KmLiquid的值比它小10倍,它们就会减少到接近于零的一条线。

您可以打印出df2['Counts'][471:494]df2['Counts'][495:],看看这些值是什么样的。下面的代码添加了一个散点图来查看所有的点。

几点意见:

  • 切片array[a:b]一样,从ab-1 (类似于python的range函数)。所以您可能需要使用data = [df2['Counts'][0:471], df2['Counts'][471:495],df2['Counts'][495:]]之类的。
  • 建议不要将ax.plt.调用matplotlib函数方式混在一起。
  • 通常,最好是在创建主图之后调用xticks函数,因为许多函数都试图设置自己的代码。
  • 在设置xticklabels时,建议同时设置相应的xticks。在这种情况下,蜱的内部编号为1, 2, 3

下面是一些示例代码,展示了事情是如何结合在一起的。为了帮助调试,添加了散点图以查看所有点的实际位置。

代码语言:javascript
复制
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()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62979574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档