尝试创建不连续轴时,为什么我的条形图会变成线形图?

米兰

我正在尝试在条形图上创建不连续的y轴。我可以根据需要断开轴,但是结果图看起来像是数据的线图,而不是原始的条形图。在所附的图像中,我希望顶部坐标轴上的条形图显示在底部图形的坐标轴上。

谢谢。

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame(np.c_[PURO, MYC, HRAS, CYCD, AURKB], index=Phenotype)
df.plot.bar()

plt.xlabel('Phenotype (# of poles, total # of centrioles)')
plt.ylabel('# of cells')

fig, (ax, ax2) = plt.subplots(2, 1, sharex=True, sharey=False)

ax.plot(df)
ax2.plot(df)


ax.set_ylim(40,100) 
ax2.set_ylim(0,20)

ax.spines['bottom'].set_visible(False)
ax2.spines['top'].set_visible(False)
ax.xaxis.tick_top()
ax.tick_params(labeltop='off')  # don't put tick labels at the top
ax2.xaxis.tick_bottom()

plt.show()

结果图

谢尔多雷

问题在于,您首先绘制条形图,然后使用ax.plot()ax2.plot()绘制两次DataFrames 从而简单地绘制连接线。

解决方案:删除以下行

df.plot.bar() 

和替换ax.plot(df)ax2.plot(df)通过

df.plot.bar(ax=ax) 
df.plot.bar(ax=ax2)

以下是使用虚拟DataFrame的最小工作答案(不包括导入)同样适用于您的情况。

fig = plt.figure(figsize=(8, 6))

df = pd.DataFrame({'count': {0: 88, 1: 67, 2: 10, 3: 16, 4: 18}}).reset_index()
fig, (ax, ax2) = plt.subplots(2, 1, sharex=True, sharey=False)

df.plot.bar(x='index', y='count', legend=False, ax=ax)
df.plot.bar(x='index', y='count', legend=False, ax=ax2)

ax.set_ylim(50,100) 
ax2.set_ylim(0,20)

ax.spines['bottom'].set_visible(False)
ax2.spines['top'].set_visible(False)
ax.xaxis.tick_top()
ax.tick_params(labeltop='off')  # don't put tick labels at the top
ax2.xaxis.tick_bottom()

您可以添加对角线/小线以突出显示虚线,只需复制官方示例中的线即可

输出量

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我执行“ log”操作时,我的matplotlib条形图会压缩x轴

为什么创建分层条形图会删除排序?

尝试使用Matplotlib在条形图上绘制线形图

条形图的y轴是什么?我只想数数

使用ggplot绘制线形图和条形图(带有辅助轴的线图)

如何在同一图表上用单独的轴绘制条形图和线形图?

为什么我的条形图显示空白输出?

WPF 工具包:尝试交换轴时出现条形图轴错误

如何使用R线图创建条形图和线形图?

d3 v4为什么我的x轴和条形图不能对齐?

D3.js V5 - 为什么我的条形图轴没有缩放?

条形图的水平轴

jqplot条形图和线形图,其中线形图在后面

水平条形图:不匹配的轴单位

Matplotlib水平条形图(barh):为什么条形位于顶部而不彼此相邻?

为什么Python Matplotlib条形图的X轴刻度显示奇怪和错误的负值?

如何创建一个双轴条形图?

如何使用非数字X轴创建条形图?

使用双 y 轴创建条形图

尝试绘制堆积的条形图时出现形状不匹配错误消息

尝试使用matplotlib创建条形图时可能基于数据帧的错误

尝试从数据框数据创建堆叠的条形图

从矩阵创建条形图

双条形图的创建

每次运行函数时,我的 matplotlib 条形图都会重复,如何刷新条形图?

在dc.js和crossfilter.js中使用堆积条形图过滤时,为什么我的饼图显示不正确的组?

尝试绘制简单的条形图时出现错误

重新创建条形图而不记住数据

使用DC.js和交叉过滤器的复合图(条形图和线形图),当条形值= 0时线消失