小编Beb*_*ron的帖子

当第一个元素为空时如何从文件中正确读取列

我有一个数据文件data.txt

\n
  a  \n5 b \n3 c 7\n
Run Code Online (Sandbox Code Playgroud)\n

我想加载并拥有

\n
 julia> loaded_data\n3\xc3\x973 Matrix{Any}:\n ""   "a"  ""\n 5  "b"  ""\n 3  "c"  7\n
Run Code Online (Sandbox Code Playgroud)\n

但我不清楚如何做到这一点。试readdlm

\n
julia> using DelimitedFiles\n\njulia> readdlm("data.txt")\n3\xc3\x973 Matrix{Any}:\n  "a"  ""    ""\n 5     "b"   ""\n 3     "c"  7\n
Run Code Online (Sandbox Code Playgroud)\n

不能正确地将第一列的第一个元素识别为空白,而是读取"a"为第一个元素(这当然是有道理的)。我认为最接近我想要的就是使用readlines

\n
julia> readlines("data.txt")\n3-element Vector{String}:\n "  a  "\n "5 b "\n "3 c 7"\n
Run Code Online (Sandbox Code Playgroud)\n

但从这里我不知道如何继续。我可以抓取其中一行及其所有列split,但不确定这如何帮助我识别其他行中的空元素。

\n

io julia

7
推荐指数
3
解决办法
486
查看次数

Matplotlib 更改图例行的长度

我有以下代码来生成具有共享图例的图

from matplotlib.legend_handler import HandlerLine2D, HandlerTuple
import matplotlib.pyplot as pt

fig = pt.figure(figsize = (12,4))
gd = fig.add_gridspec(1,2)
p1 = fig.add_subplot(gd[0])
p2 = fig.add_subplot(gd[1])

redLine, = p1.plot([1,2,3], [4,2,5], 'r-')
greenLine, = p1.plot([1,2,3], [8,9,1], 'g--')

redDot, = p2.plot([1,2,3], [4,2,5], 'ro')
greenDot, = p2.plot([1,2,3], [8,9,1], 'gs')

leg = p2.legend([(redLine, redDot), (greenLine, greenDot)], ['Red', 'Green'], handler_map = {tuple: HandlerTuple(ndivide=None)})
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

然而,这样做会使图例线有点太短,无法清楚地区分实线和虚线,因此我试图找出如何在不使整个图例变大的情况下使它们更长。

从这里的文档https://matplotlib.org/stable/api/_as_gen/matplotlib.lines.Line2D.html#matplotlib.lines.Line2D看来我应该能够通过设置 sketch_params 属性来做到这一点。我有以下内容

legLines = leg.get_lines()
pt.setp(legLines, sketch_params = (1,2,3))
Run Code Online (Sandbox Code Playgroud)

但这告诉我它必须是实数,而不是元组——与文档的建议相反。另请注意,此示例中的数字是任意的,因为我只是想了解如何使用它。

我尝试了很多不同的方法来实现这个共同的传说,这是迄今为止我所得到的最接近的。所以我只是希望有人能帮助解释我如何滥用该sketch_params属性,因为听起来我应该能够用它来指定长度。

编辑: 评论中提到,要让 sketch_params 工作,我可以简单地做

for line in …
Run Code Online (Sandbox Code Playgroud)

python matplotlib legend legend-properties

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

标签 统计

io ×1

julia ×1

legend ×1

legend-properties ×1

matplotlib ×1

python ×1