目前我正在使用 Altair 将文件(在我的情况下仅用于图像)上传到我的 GraphQL API。但是,我所有的其他路由都存储在邮递员中,如果我可以只使用一个应用程序(邮递员)来处理所有事情,那就太好了。
在 Altair 中,我可以简单地选择一个图像并将其存储为一个变量,我将其作为 GraphQL 上传字段的值。
有谁知道 Postman 是否支持该(或类似的)功能?
谢谢!
在ggplot2
,使用跨越行和列的构面创建刻面图很容易.有没有"光滑"的方式来做到这一点altair
?facet
文件
可以在一列中绘制构面图,
import altair as alt
from vega_datasets import data
iris = data.iris
chart = alt.Chart(iris).mark_point().encode(
x='petalLength:Q',
y='petalWidth:Q',
color='species:N'
).properties(
width=180,
height=180
).facet(
row='species:N'
)
Run Code Online (Sandbox Code Playgroud)
在一排,
chart = alt.Chart(iris).mark_point().encode(
x='petalLength:Q',
y='petalWidth:Q',
color='species:N'
).properties(
width=180,
height=180
).facet(
column='species:N'
)
Run Code Online (Sandbox Code Playgroud)
但通常情况下,我只想使用多个列/行在网格中绘制它们,即在单个列/行中排列的那些并不意味着任何特定的含义.
例如,看到facet_wrap
来自ggplot2
:http://www.cookbook-r.com/Graphs/Facets_(ggplot2)/#facetwrap
是否可以格式化箱线图工具提示中的值?从这个Vega 文档来看,似乎是这样,但我不太清楚如何使用 Altair for python 来做到这一点
from vega_datasets import data
import altair as alt
source = data.population.url
alt.Chart(source).mark_boxplot().encode(
alt.X("age:O"),
alt.Y("people:Q"),
tooltip=[
alt.Tooltip("people:Q", format=",.2f"),
],
)
Run Code Online (Sandbox Code Playgroud)
使用 altair 包时,我注意到创建图表时还会生成图例。以下代码:
import altair as alt
from vega_datasets import data
alt.renderers.enable('notebook')
cars = data.cars()
alt.Chart(cars).mark_circle().encode(x='Horsepower',
y='Miles_per_Gallon',
color='Origin',
tooltip=['Name', 'Origin', 'Horsepower', 'Miles_per_Gallon']).interactive()
Run Code Online (Sandbox Code Playgroud)
产生这个图:
我的问题:有没有办法在图形输出中抑制这个图例?
最近我正在学习Plotly express和Altair/Vega-Lite进行交互式绘图。他们两个都令人印象深刻,我想知道他们的优点和缺点是什么。特别是对于创建交互式情节,它们之间有什么大的区别,什么时候比另一个更合适?
我正在尝试在 altair 中绘制图像数据,特别是尝试在 Jake VDP 的书 - https://jakevdp.github.io/PythonDataScienceHandbook/05.07-support-vector-machines.html中的此链接中复制人脸识别示例。
有没有人在 altair 中绘制图像数据很幸运?
该图在列的顶部有日期。它们相互流动,使它们难以阅读。有没有办法垂直旋转这些?我在网上找不到解决方案。
rr_st = alt.Chart(dfag).mark_bar().encode(
x=alt.X('rebalance_range:O', title=""),
y=alt.Y('mean(annual_return):Q', title='annual return'),
column= alt.Column('start_date', title=""),
color=alt.Color('rebalance_range:O', title='rebalance range')
)
rr_st
Run Code Online (Sandbox Code Playgroud)
我在 Jupyter 笔记本(不是 JupyterLab)中使用以下方法渲染 Altair 图:
alt.renderers.enable('notebook')
Run Code Online (Sandbox Code Playgroud)
一切正常,但是相对于我的 Jupyter 笔记本的宽度,这些图通常很小。
如果我使用以下方法将笔记本的宽度扩展到屏幕的 100%:
from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))
Run Code Online (Sandbox Code Playgroud)
Altair 图不会相应地缩放(它们保持相同的大小)。
有什么方法可以缩放渲染图的大小(即,使它们更大),同时仍将它们保留在笔记本中?
谢谢!
我想使用优秀的altair库来创建仪表板.有没有办法创建仪表板而不显示任何代码?我在这里看到一些非常好的示例:https://altair-viz.github.io/case_studies/exploring-weather.html但代码也是可见的.此外,altair的最佳(经过良好测试/易于使用)的前端是什么?Colab?Jupyter?
我有一个mark_area
以明显荒谬的顺序堆叠的图表。我更喜欢将最大的层放在底部,并在上面减少。
这是图表的图片,标有首选顺序:
我试图制作一个玩具示例:
import random
import altair as alt
seed = {"date": pd.date_range('1/1/2019',periods=20,freq="M"),
"jack": random.sample(range(100, 500), 20),
"roy":random.sample(range(20, 90), 20),
"bill":random.sample(range(600, 900), 20),
}
df = pd.DataFrame.from_dict(seed)
df = df.melt(id_vars="date", var_name="person", value_name="measure")
alt.renderers.enable('notebook')
alt.Chart(df).mark_area().encode(
x=alt.X(
'date',
),
y=alt.Y(
'measure',
),
color='person',
)
Run Code Online (Sandbox Code Playgroud)
这会自动生成如下图表:
我尝试重复使用在别处找到的一些咒语,但它们无声无息。我使用“升序”还是“降序”没有区别:
alt.Chart(df).mark_area().encode(
x=alt.X(
'date',
),
y=alt.Y(
'measure',
sort=alt.EncodingSortField(
field="measure",
op="sum",
order="ascending")
),
color='person',
)
Run Code Online (Sandbox Code Playgroud)