我正在尝试使用Python和Pygal库创建XY图表。源数据包含在具有三列的CSV文件中; ID,投资组合和价值。不幸的是,我只能绘制一个轴,我怀疑它是阵列的一个问题。谁能指出我正确的方向?我需要使用numpy吗?谢谢!
import pygal
import pandas as pd
data = pd.read_csv("profit.csv")
data.columns = ["ID", "Portfolio", "Value"]
xy_chart = pygal.XY()
xy_chart.add('Portfolio', data['Portfolio','Value'] << I suspect this is wrong
)
xy_chart.render_in_browser()
使用
import pygal
import pandas as pd
data = pd.read_csv("profit.csv")
data.columns = ["ID", "Portfolio", "Value"]
xy_chart = pygal.XY()
xy_chart.add('Portfolio', data['Portfolio']
)
xy_chart.render_in_browser()
我明白了:
包含一系列水平数据点/值的图表;即它具有X值但没有Y值。
使用:
import pygal
import pandas as pd
data = pd.read_csv("profit.csv")
data.columns = ["ID", "Portfolio", "Value"]
xy_chart = pygal.XY()
xy_chart.add('Portfolio', data['Portfolio','Value']
)
xy_chart.render_in_browser()
我明白了:
KeyError: ('Portfolio', 'Value')
示例数据:
ID Portfolio Value
1 1 -2560.042036
2 2 1208.106958
3 3 5702.386949
4 4 -8827.63913
5 5 -3881.665733
6 6 5951.602484
答案 0 :(得分:0)
也许有点晚了,但我做了类似的事情。您的第二个示例需要将多个列作为数组传递,然后您获取的DataFrame需要转换为元组列表。
import pygal
import pandas as pd
data = pd.read_csv("profit.csv")
data.columns = ["ID", "Portfolio", "Value"]
points = data[['Portfolio','Value']].to_records(index=False).tolist()
xy_chart = pygal.XY()
xy_chart.add('Portfolio', points)
xy_chart.render_in_browser()
可能会更优雅地使用pandas或pygal API将列添加到元组列表中。