0

如何管理此水平直方图的刻度?

我的代码:

d1=pd.read_csv('Gold1.Dat')
d1.dropna(subset=['WF (mV)'],how='any', inplace=True)

binwidth=5
m_n=np.floor(min(d1['WF (mV)'])/binwidth)*binwidth
m_x=np.floor(max(d1['WF (mV)'])/binwidth)*binwidth+binwidth            
print(m_n)
print(m_x)
print(m_x-m_n)
binnum=int((m_x-m_n)/binwidth)
print(binnum)
a,b,c=plt.hist(d1['WF (mV)'],bins=binnum,range=(m_n,m_x),edgecolor='k',orientation='horizontal')

plt.xticks(b,rotation=45)

plt.tight_layout()
plt.savefig('vertical histogram')

此图的图像

4

1 回答 1

0

您应该使用 plt.yticks 代替: matplotlib.pyplot.yticks(ticks=None, labels=None, **kwargs) 来获取或设置 y 轴的当前刻度位置和标签。

作为参考,请查看以下比较垂直与水平直方图的代码:

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

rating = pd.read_csv('Book1.csv')

plt.subplot(1, 2, 1)
bins_age = np.arange(18, rating['Age'].max() + 2, 2)
plt.hist(rating['Age'], bins=bins_age, orientation='horizontal')
ticks_age = np.arange(18, rating['Age'].max() + 10, 10)
labels_age = ticks_age**2
plt.yticks(ticks=ticks_age, labels=labels_age)

plt.subplot(1, 2, 2)
bins_age = np.arange(18, rating['Age'].max() + 2, 2)
plt.hist(rating['Age'], bins=bins_age)
plt.show()

输出:

在此处输入图像描述

于 2020-07-02T12:28:38.797 回答