小编jar*_*jar的帖子

在matplotlib中使用数据坐标时如何使y轴文本出现在图中?

我有一个图,我用不同的颜色显示图中的最大值和最小值。由于绘图是动态的,有时文本会出现在ytick 标签的正上方,这看起来不太好。我想保留ytick's,所以我想把文本放在情节中。
但是我的 x 轴是datetime可变的,所以提供第一个第二个 之间的 x,y 位置让xtick我失望。

我在这里尝试了解决方案但它适用于整个轴。

根据文档,我也尝试了轴坐标(0,0 是左下角,1,1 是右上角),但问题是它很难想出一个合适的像素位置,既在内部又在顶部水平线。而且我认为由于数据每天都在变化,因此很难维护

我想坚持数据坐标,因为数据是动态的。
是否可以使用数据坐标来做到这一点?

请使用我为我的情况编造的以下代码 -

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.transforms as transforms

x = ['2020-03-01', '2020-03-02', '2020-03-03', '2020-03-04', '2020-03-05']
y = [1,2,3,4,5.8]
df = pd.DataFrame({'X': x, 'Y': y})

fig, ax = plt.subplots()
sns.lineplot(x='X', y='Y', data=df)
show_point = …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib python-3.x seaborn

3
推荐指数
1
解决办法
192
查看次数

在 bash 中检查 git 中的任何更改时 if-then-else 条件的预期行为与在 github actions 工作流程中编写时相反

如果您在没有更改的情况下有提交语句,那么它将返回退出代码 1,这将导致 GitHub 工作流失败。

作为解决方法,我尝试修改此SO 帖子以及此答案中的解决方案,该答案基本上是使用 -

git diff-index --quiet HEAD
Run Code Online (Sandbox Code Playgroud)

在我当地的 bash 上,它按预期工作。当我运行时echo "$?",输出 1 或 0 符合我的预期。

基于该文档和有关在 GitHub 工作流程中设置环境变量的文档,我的工作流程文件中有以下内容 -

git diff-index --quiet HEAD
Run Code Online (Sandbox Code Playgroud)

但是,每当有要提交或跟踪的更改时,环境变量changes_exist就会发生变化false,反之亦然。

这与我的期望恰恰相反。

作为一种解决方法,直到我弄清楚这一点,我使用以下在工作人员中完美运行的方法 -

git diff-index --quiet HEAD || git commit -m "updating datasets"
Run Code Online (Sandbox Code Playgroud)

知道为什么上面的方法有效,而使用的if - then - else行为与它应该的相反吗?

git github github-actions

3
推荐指数
1
解决办法
1万
查看次数

如何隐藏轴线但在 Altair 的图表中显示刻度,同时积极使用“轴”参数?

我知道axis=None用于隐藏轴线。但是,当您主动使用axis修改图形时,是否可以只保留刻度,而隐藏 X 轴和 Y 轴的轴线?

例如,这是我希望它发生的图表 -

import pandas as pd
import altair as alt

df = pd.DataFrame({'a': [1,2,3,4], 'b':[2000,4000,6000,8000]})

alt.Chart(df).mark_trail().encode(
    x=alt.X('a:Q', axis=alt.Axis(titleFontSize=12, title='Time ?', labelColor='#999999', titleColor='#999999', titleAlign='right', titleAnchor='end', titleY=-30)),
    y=alt.Y('b:Q', axis=alt.Axis(format="$s", tickCount=3, titleFontSize=12, title='Cost ?', labelColor='#999999', titleColor='#999999', titleAnchor='end')),
    size=alt.Size('b:Q', legend=None)
).configure_view(strokeWidth=0).configure_axis(grid=False)
Run Code Online (Sandbox Code Playgroud)

输出应该看起来像这个 SO post 中的刻度线。
注意:该帖子中的情节与此处提供的演示无关。它只是为了理解目的。

python charts python-3.x altair

2
推荐指数
1
解决办法
1423
查看次数

Vega-Lite 的某些投影在 Altair 中不起作用

根据堆栈跟踪,我可以看到 Altair 只接受以下预测 -

['albers', 'albersUsa', 'azimuthalEqualArea', 'azimuthalEquidistant', 'conicConformal', 'conicEqualArea', 'conicEquidistant', 'equalEarth', 'equirectangular', 'gnomonic', 'identity', 'mercator', 'naturalEarth1', 'orthographic', 'stereographic', 'transverseMercator']
Run Code Online (Sandbox Code Playgroud)

然而,我真的很想有一个基于多面体的投影,特别是Cahill-Keyes。经过一番搜索,我找到了这个页面,我可以在其中看到所有 Vega-Lite 投影 - https://observablehq.com/@vega/vega-lite-cartographic-projections 并且它确实有一些多面体投影。

但是,Altair 似乎不支持其中的很多。我认为通常 Vega-Lite 中可用的任何内容都可以使用 Altair 完成,所以我想知道为什么 Altair 限制了投影数量?

python-3.x vega-lite altair

2
推荐指数
1
解决办法
52
查看次数