如何解决为什么在 Spyder 上使用 Altair 时我的两个图表都没有显示?
两个图形的代码。运行这段代码几次,出于某种原因,所有显示的都是直方图。同样重要的是,我也在使用 Spyder IDE,如果这有什么不同的话。哦....我也试过 graph|hist... 但什么都没有
import altair as alt
import pandas as pd
#import csv
acs = pd.read_csv('C:/Users/Andrew/anaconda3/mydata/acs2020.csv')
acs.head()
interval = alt.selection_interval()
#build point graph
graph = alt.Chart(acs).mark_point(opacity=1).encode(
x = ('Trade #'),y = ('Balance'),color = alt.Color('Item',scale=alt.Scale(scheme='tableau10')),tooltip = [alt.Tooltip('Type'),alt.Tooltip('Profit'),alt.Tooltip('Ticket:N')
]
).properties(
width = 900
)
#build histogram
hist = alt.Chart(acs).mark_bar().encode(
x = 'count()',y = 'Item',color = 'Item'
).properties(
width = 800,height = 80
).add_selection(
interval
)
#show graphs
graph&hist.show()
解决方法
您需要在最后一行添加括号:(graph & hist).show()
。
解释:当你写类似的东西时
graph&hist.show()
Python 规定了操作的顺序,方法调用的优先级高于二元运算符。这意味着它等价于:
(graph) & (hist.show())
您正在显示 hist
图表,然后将 show()
方法的返回值 None
连接到 graph
图表,这将导致直方图关闭时的 ValueError
。
相反,如果要显示 graph & hist
运算的结果,则需要使用括号来表示这一点:
(graph & hist).show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。