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

matplotlib直方图轴格式

阳念
2023-03-14

我有一个从sql数据库查询派生的直方图。代码如下:

def histogram(self):

    conn = sqlite3.connect('tooldatabase.db')
    c = conn.cursor()
    c.execute('PRAGMA foreign_keys = ON')
    c.execute("SELECT evaluation from evaluations")
    evaluations=c.fetchall()
    print(evaluations)
    minimum=min(evaluations, key = lambda t: t[0])
    maximum=max(evaluations, key = lambda t: t[0])
    print(minimum,maximum)
    eval=[]
    for (y,) in evaluations:
        eval.append(y)
    bin=[]
    for x in range(1,maximum[0]+2):
        bin.append(x)

    figure=plt.figure(1)
    plt.hist(eval,bins=bin, facecolor='blue',edgecolor='black',)
    plt.xticks(bin, bin)
    plt.xlabel('evaluation')
    plt.ylabel('No of problems')
    plt.title('Evaluations Distribution Histogram')
    plt.show()

输出如下:https://gyazo.com/d73b20a118db0088aab261c079613b00

我想显示为:https://gyazo.com/063990cd8741682f45b5a37ba594ff56

其中,x轴的编号向右侧移动了一点。有可能做到这一点吗?

共有1个答案

喻元龙
2023-03-14

我认为您必须修改xticks位置,如:

import matplotlib.pyplot as plt
import numpy as np

# test data
eval = np.random.randint(0,3,10)
bin = np.arange(4) # len + 1 

figure=plt.figure(1)
plt.hist(eval,bins=bin, facecolor='blue',edgecolor='black')
# shift ticks by .5
plt.xticks(bin-.5, bin)
plt.xlabel('evaluation')
plt.ylabel('No of problems')
plt.title('Evaluations Distribution Histogram')
plt.show()
 类似资料:
  • 我想使用Matplotlib绘制一个带有非均匀x轴的直方图。例如,考虑下面的直方图: 第一个箱子的密度很高,所以我想放大。 理想情况下,我想将x轴中的值更改为,保持图中的箱宽度不变(当然不是数字)。有没有简单的方法来实现这一点?欢迎任何意见或建议。

  • 直方图(Histogram),又称质量分布图,它是一种条形图的一种,由一系列高度不等的纵向线段来表示数据分布的情况。 直方图的横轴表示数据类型,纵轴表示分布情况。 首先,我们需要了解柱状图和直方图的区别。直方图用于概率分布,它显示了一组数值序列在给定的数值范围内出现的概率;而柱状图则用于展示各个类别的频数。 例如,我们对某工厂的员工年龄做直方图统计,首先我们要统计出每一位员工的年龄,然后设定一个

  • 在一些应用场景中,有时需要绘制两个 x 轴或两个 y 轴,这样可以更直观地显现图像,从而获取更有效的数据。Matplotlib 提供的 twinx() 和 twiny() 函数,除了可以实现绘制双轴的功能外,还可以使用不同的单位来绘制曲线,比如一个轴绘制对函数,另外一个轴绘制指数函数。 下面示例绘制了一个具有两个 y 轴的图形,一个显示指数函数 exp(x),另一个显示对数函数 log(x)。 输

  • 问题内容: 我遇到了轴刻度标签的格式问题。我禁用了y_axis的偏移量: 并尝试将其设置为科学格式,但我得到的是: 但我期望这样的事情: 或类似。 我真正想要的是这样的: 我可以尝试将标签设置为静态,但是最后我将拥有数十或数百个具有不同值的图,因此需要动态设置。 一种替代方法是将y_axis偏移量放置为标签,但是我也不知道如何执行此操作。 问题答案: 有很多方法可以做到这一点 您可以调整功率限制(

  • 我使用matplotlib创建直方图。仍然有一些问题我自己或借助互联网无法解决。 > 如何更改某些垃圾箱的颜色?详细地说,我想用:a.)value bin更改箱子的颜色 如何不仅用1个小数点的数字标记X轴,而且用2个小数点标记X轴(现在只是不打印)? 请参见下面绘制的柱状图: plt。迄今为止的直方图

  • NumPy有一个numpy.histogram()函数,它是数据频率分布的图形表示。 相等水平尺寸的矩形对应于称为bin类间隔和对应于频率的variable height 。 numpy.histogram() numpy.histogram()函数将输入数组和bin作为两个参数。 bin数组中的连续元素充当每个bin的边界。 import numpy as np a = np.array([2