在图形中标记终点

时间:2018-12-05 19:15:31

标签: python matplotlib

这是我的代码-

import pandas as pd
import matplotlib.pyplot as plt

data = [[-1,10],[5,12],[7,13]]
df = pd.DataFrame(data,columns=['Hops','Frequency'])

plt.figure()
df.plot(x='Hops',y='Frequency',kind='bar',width=0.2,color='blue') 
plt.xlabel('Hops')
plt.ylabel('Frequency')
plt.ylim([0,20])
plt.xlim([-10,10])

生成的图形是- enter image description here

我想在-10到10的x轴上标记极限值。在我的代码中,它在y轴而不是x轴上显示标记。

2 个答案:

答案 0 :(得分:0)

您需要覆盖默认情况下熊猫的格式。您可以使用plt.xticks手动设置x刻度和标签。

import pandas as pd
import matplotlib.pyplot as plt

data = [[-1,10],[5,12],[7,13]]
df = pd.DataFrame(data,columns=['Hops','Frequency'])

plt.figure()
df.plot(x='Hops',y='Frequency',kind='bar',width=0.2,color='blue') 
plt.xlabel('Hops')
plt.ylabel('Frequency')
plt.ylim([0,20])
plt.xlim([-10,10])
plt.xticks([-10, 0, 10], [-10, 0, 10])  # Or whatever you need them to be

或者,您可以直接使用plt.bar并避免使用熊猫格式。

plt.bar(df['Hops'], df['Frequency'])
plt.xlabel('Hops')
plt.ylabel('Frequency')
plt.ylim([0,20])
plt.xlim([-10,10])

答案 1 :(得分:0)

由于问题尚不清楚,因此需要在这里猜测。就我的解释而言,您想显示一个数字条形图,其中条形图位于其x值所给定的位置。熊猫条形图本质上是分类的。因此,要绘制数字条形图,您需要使用matplotlib。

import pandas as pd
import matplotlib.pyplot as plt

data = [[-1,10],[5,12],[7,13]]
df = pd.DataFrame(data,columns=['Hops','Frequency'])

plt.figure()
plt.bar(x='Hops',height='Frequency', width=0.2, color='blue', data=df) 
plt.xlabel('Hops')
plt.ylabel('Frequency')
plt.ylim([0,20])
plt.xlim([-10,10])

plt.show()

enter image description here