首页 > 解决方案 > 如何控制 Python 中线图和条形图之间的差异?

问题描述

更改属性kind = barkind = line更改 Python 中的 x 轴特征。如何获得相同的折线图?

这是基本代码:

import pandas as pd

dataframe.plot(
  x = "Panel",
  y = ["Total A",
       "Total B"],
  ylim=(0, 15),
  rot = 90,
  kind = "bar"
)

输出使用bar

在此处输入图像描述

输出只是更改为line

在此处输入图像描述

为什么我只得到一些标签,而不是第一张图片中的所有标签?

标签: pythonpandasmatplotlibplot

解决方案


进入pandas 文档,我看到该关键字xticks是受支持的。令我惊讶的是,以下工作:

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt

#fake data generation
from pandas._testing import rands_array
np.random.seed(123)
n = 30
val1 = np.random.randint(0, 100, size=n)
val2 = np.random.randint(20, 40, size=n)
ind = rands_array(5, n)
df = pd.DataFrame({"A": val1, "B": val2, "Panel": ind})
print(df)


df.plot(
  x = "Panel",
  y = ["A", "B"],
  rot = 90,
  xticks=np.arange(df.Panel.size),
  kind = "line"
)

plt.tight_layout()
plt.show()

样本输出:

在此处输入图像描述


推荐阅读