gpt4 book ai didi

python - 如何绘制从 SQL 获得的数据图表?

转载 作者:太空宇宙 更新时间:2023-11-04 02:10:56 24 4
gpt4 key购买 nike

我正在 DataQuest 中做一个练习,我试图用图形表示一组从 SQL 获得的数据。

它给我错误:

AttributeError: 'str' object has no attribute 'values'

如何在 x 轴上设置 name 并在 y 轴上设置 Pop_Density?我知道 Python 无法绘制名称,但我如何将名称与数字一起引用?我是否必须先将 DataFrame 转换为字典?有问题的行在下面评论。

import pandas as pd
import sqlite3

conn = sqlite3.connect("factbook.db")

q7 = '''
SELECT name, CAST(population as float)/CAST(area_land as float) AS Pop_Density
FROM facts
ORDER BY Pop_Density DESC
LIMIT 20
'''

density = pd.read_sql_query(q7, conn)
print(density)

Output Population Density

%matplotlib inline

import matplotlib.pyplot as plt
import seaborn as sns

fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(111)

bar_heights = density['name'].iloc[0].values # <-- line with problem.
bar_positions = arange(5) + 0.75
tick_positions = range(1, 20)

ax.bar(bar_positions, bar_heights, 0.5)
ax.set_xticks(tick_positions)
ax.set_xticklabels(num_cols, rotation=90)

ax.set_xlabel("Country")
ax.set_ylabel("Population Density")
ax.set_title("Countries With The Highest Population Density")

最佳答案

bar_heights = density['Pop_Density'].values
bar_positions = np.arange(len(bar_heights)) + 0.75
tick_positions = range(1, len(bar_heights) + 1)

ax.bar(bar_positions, bar_heights, 0.5)
ax.set_xticks(tick_positions)
ax.set_xticklabels(density['name'], rotation=90)

关于python - 如何绘制从 SQL 获得的数据图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53750505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com