如何才能让Altair以与matplotlib(第一张图像)相同的方式绘制直线,而不显示y轴上的范围0.000.06?请参阅下面的代码和示例:

import pandas as pd
import altair as alt

loss_data = [0.07727576792240143, 0.0697188749909401, 0.06957338005304337, 0.06949638575315475, 0.06944674998521805, 0.06940694153308868, 0.06925933063030243, 0.06923820823431015, 0.06922164559364319, 0.06911467760801315, 0.0691060945391655, 0.0690980926156044, 0.06901008635759354, 0.06900542229413986, 0.0689304992556572, 0.06892699748277664, 0.06892561912536621, 0.068858303129673, 0.06885731965303421, 0.06880014389753342, 0.0687987431883812, 0.06874748319387436, 0.06874550133943558, 0.06870073080062866, 0.06869713962078094, 0.06869688630104065, 0.06865549832582474, 0.0686517134308815, 0.06861335039138794, 0.0686088502407074, 0.06857530772686005, 0.06856919080018997, 0.0685390755534172, 0.06853235512971878, 0.06850989162921906, 0.06850464642047882, 0.06850180774927139, 0.0684986561536789, 0.06849765032529831, 0.06849698722362518]

loss_df = pd.DataFrame(loss_data, columns=["loss"])
loss_df.insert(0, 'iteration', range(1, 1 + len(loss_df)))
loss_df

loss_df["loss"].plot(title="Training loss")

alt.Chart(loss_df, title="Training loss").mark_line().encode(
  x=alt.X("iteration", scale=alt.Scale(domain=[0, 40])),
  y=alt.Y("loss",)
)

matplotlib

altair

推荐答案

您需要Scale=alt.Scale(零=False),如下所示:

alt.Chart(loss_df, title="Training loss").mark_line().encode(
   x=alt.X("iteration", scale=alt.Scale(domain=[0, 40])),
   y=alt.Y("loss",scale=alt.Scale(zero=False))
)

Python相关问答推荐

如何从FDaGrid实例中删除某些函数?

在函数内部使用eval(),将函数的输入作为字符串的一部分

如何让 turtle 通过点击和拖动来绘制?

使用plotnine和Python构建地块

numba jitClass,记录类型为字符串

运行终端命令时出现问题:pip start anonymous"

大小为M的第N位_计数(或人口计数)的公式

有没有一种方法可以从python的pussompy比较结果中提取文本?

递归访问嵌套字典中的元素值

给定高度约束的旋转角解析求解

Scrapy和Great Expectations(great_expectations)—不合作

计算天数

如何在PySide/Qt QColumbnView中删除列

AES—256—CBC加密在Python和PHP中返回不同的结果,HELPPP

干燥化与列姆化的比较

Gunicorn无法启动Flask应用,因为无法将应用解析为属性名或函数调用.'"'' "

每次查询的流通股数量

如何编辑此代码,使其从多个EXCEL文件的特定工作表中提取数据以显示在单独的文件中

Polars定制函数返回多列

在MongoDB文档中仅返回数组字段