当前位置: 首页 > 知识库问答 >
问题:

如何将条形图与plt或pandas直方图中的刻度标签对齐(绘制多列时)

宋昕
2023-03-14

我已经开始使用python解决工作中的许多数据问题,数据集总是略有不同。我试图探索使用内置pandas函数绘制数据的更有效方法,而不是单独写出每个列的代码并编辑格式以获得更好的结果。

背景:我正在使用Jupyter笔记本并查看直方图,其中的值都是唯一的整数。

问题:当用一个函数(例如df)绘制多列数据时,我希望xtick标签与直方图条的中心对齐。hist()一次获取所有列的直方图。

  • 有人知道这是否可能吗?
  • 还是建议每个图单独执行,而不是使用应用于所有列的内置函数?

我可以按照这篇文章单独修改它们:Matplotlib xticks没有与直方图对齐,这给了我我想要的,但只适用于一个图形,并对值进行了一些手动处理。

一个图形的预期结果示例:

我拥有的数据的基本示例:

# Import libraries 
import pandas as pd 
import numpy as np

# create list of datapoints
data = [[170,30,210],
        [170,50,200],
        [180,50,210],
        [165,35,180],
        [170,30,190],
        [170,70,190],
        [170,50,190]]

# Create the pandas DataFrame 
df = pd.DataFrame(data, columns = ['height', 'width','weight']) 

# print dataframe. 
df

在问题陈述中显示图表的代码

df.hist(figsize=(5,5))
plt.show()

显示重量图表的代码

df.hist(column='weight',bins=[175,185,195,205,215])
plt.xticks([180,190,200,210])
plt.yticks([0,1,2,3,4,5])
plt.xlim([170, 220])
plt.show()

任何提示或帮助将不胜感激!

谢谢

共有1个答案

南门鸿哲
2023-03-14

我希望这能有所帮助。获取列并计算每个标签的频率(值计数),然后指定sort_index,以便根据标签而不是频率获得顺序,然后绘制条形图。

data = [[170,30,210],
        [170,50,200],
        [180,50,210],
        [165,35,180],
        [170,30,190],
        [170,70,190],
        [170,50,190]]

 # Create the pandas DataFrame
df = pd.DataFrame(data, columns = ['height', 'width','weight'])
df.weight.value_counts().sort_index().plot(kind = 'bar')
plt.show()
 类似资料:
  • 我正在使用JSONArray来填充我的MPAndroid条形图。但是条与它们的标签不对齐。像这样有人可以帮助我做些什么来将条与它们相应的标签对齐吗?

  • 我的x轴值没有对齐。我应该修改什么设置? x轴未对齐 下面是我到目前为止在代码中使用的。setLabelsToSkip将无法工作,因为我使用的是3.0.1版。 这是我的标签格式化程序类: 以下是我的主要活动setdata方法: 在我的主要活动中,我像这样使用它:

  • 问题内容: 这是我的pandas数据帧’df’: I want to plot 3 groups of bar chart (according to ): for each channel: plot control booked value vs treatment booked value. hence i should get 6 bar charts, in 3 groups where

  • 问题内容: 我想使用matplotlib从向量绘制归一化的直方图。我尝试了以下方法: 以及: 但是没有一个选项会从[0,1]产生y轴,以使得直方图的条形高度之和为1。我想生成这样的直方图-我该怎么做? 问题答案: 如果您提出了更完整的工作示例(或在这种情况下为非工作示例),则将更有帮助。 我尝试了以下方法: 实际上,这将产生一个y轴从到的条形图直方图。 此外,按照该文件(即从),我觉得总和也没关系

  • 我的条形图中的条形图未与标签对齐-请参阅:https://imgur.com/gallery/QVtIvXq 我的X轴: 任何帮助都将不胜感激

  • 问题内容: 如何添加值的标签以显示在条形图中的条形上方: 问题答案: 捕获绘图所在的轴,然后将其作为普通对象进行操作。将值放在条形上方将是这样的: