英文:
using pandas dataframe to create matplotlib bar chart
问题
这是我的pandasDF数据框的一个示例。这是一个电影数据集。计数表示每部电影标题的表示次数。
| 发布年份 | 计数 |
| 1989 | 1 |
| 1990 | 1 |
| 1991 | 1 |
| 1992 | 1 |
| 1993 | 1 |
之前我的数据框是一个Spark数据框,但我将其转换为一个pandas数据框。
pandasDF = movies_DF.toPandas()
pandasDF.head()
这是我现在拥有的绘图。
我试图实现一个看起来像这样的绘图。
这是我的代码:
x = list(pandasDF[pandasDF['yearOfRelease'] >= '1990']['yearOfRelease'])
import matplotlib.pyplot as plt
plt.figure()
pd.value_counts(x).plot.bar(title="每年发布的电影数量")
plt.xlabel("年份")
plt.ylabel("电影数量")
plt.show()
英文:
This is an example of how my pandasDF dataframe look like. This is a movie dataset. The count represent how each movie title represent 1.
| yearOfRelease |count|
| 1989 | 1 |
| 1990 | 1 |
| 1991 | 1 |
| 1992 | 1 |
| 1993 | 1 |
Previously my dataframe is a spark dataframe but i convert it to a pandas dataframe
pandasDF = movies_DF.toPandas()
pandasDF.head()
This is the plot i have right now.
I am trying to achieve a plot that look like this.
This is my code:
x = list(pandasDF[pandasDF['yearOfRelease'] >= '1990']['yearOfRelease'])
import matplotlib.pyplot as plt
plt.figure()
pd.value_counts(x).plot.bar(title="number of movies by year of release ")
plt.xlabel("yearOfRelease")
plt.ylabel("numOfMovies")
plt.show()
答案1
得分: 2
以下是您提供的代码部分的翻译:
import matplotlib.pyplot as plt
# 选择年份大于等于1990的数据并将'yearOfRelease'列转换为整数类型
sr = pandasDF.loc[pandasDF['yearOfRelease'] >= '1990', 'yearOfRelease'].astype(int)
# 绘制柱状图,显示每年上映电影的数量
ax = (sr.value_counts().sort_index()
.plot.bar(title='电影年度发行数量',
xlabel='年份', ylabel='电影数量',
rot=-90))
# 设置x轴的主要刻度为每2年一次
ax.xaxis.set_major_locator(ticker.MultipleLocator(2))
# 设置y轴的主要刻度为每500个电影一次
ax.yaxis.set_major_locator(ticker.MultipleLocator(500))
# 调整布局并显示图形
plt.tight_layout()
plt.show()
希望这有帮助。如果您需要进一步的翻译或解释,请告诉我。
英文:
You have to sort your values by index (yearOfRelease):
import matplotlib.pyplot as plt
sr = pandasDF.loc[pandasDF['yearOfRelease'] >= '1990', 'yearOfRelease'].astype(int)
ax = (sr.value_counts().sort_index()
.plot.bar(title='number of movies by year of release',
xlabel='yearOfRelease', ylabel='numOfMovies',
rot=-90))
ax.xaxis.set_major_locator(ticker.MultipleLocator(2))
ax.yaxis.set_major_locator(ticker.MultipleLocator(500))
plt.tight_layout()
plt.show()
Output:
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论