Recrie um gráfico xkcd proceduralmente com sua ferramenta de plotagem favorita


18

Ultimamente, tem havido várias questões relacionadas à recreação de gráficos no estilo xkcd, como a seguinte ( 1064 ) em vários idiomas .

http://xkcd.com/1064/

Seu objetivo é recriar qualquer história em quadrinhos xkcd existente o mais próximo possível do original. O quadrinho deve ter pelo menos um gráfico simples, um gráfico de pizza ou um elemento similar.

A resposta mais votada vence , não antes de 10 dias após a primeira resposta válida.

Sua entrada deve conter um código que exiba um xkcd-comic como descrito acima em uma linguagem gráfica, fazendo pelo menos algum uso de sua ferramenta de plotagem (Mathematica, MatLab, etc.)

  • o gibi não deve ser armazenado como uma imagem, deve ser gerado processualmente
  • não deve haver nenhum link para o site original, ou um espelho dele, ou seu conteúdo no disco rígido, etc.

Os votos devem avaliar a semelhança dos resultados com o original e, em menor grau, a beleza da solução. Não existe código de golfe aqui, mas é esperada uma solução o mais curta e simples possível.


3
A maioria dos votos não é uma condição de vitória objetiva adequada - e como os votos booleanos devem levar em consideração vários elementos em diferentes extensões? Acho que essa pergunta pode ter uma condição de vitória objetiva, com base no erro médio por pixel dividido pelo comprimento do código ou algo semelhante, mas, como está, apenas incentiva as pessoas a copiar e colar as respostas que foram fortemente aprovadas em outras pilhas.
Peter Taylor #

1
@ PeterTaylor: é por isso que eu especifiquei que deve ser uma história em quadrinhos xkcd existente , para que não haja cópia. A maioria dos votos positivos é um critério comumente usado (junto com a "primeira solução", que eu não gosto muito), caso contrário, você raramente encontrará problemas aqui que não são de código-golfe (e não são ganhos pelo Golfscript)
vsz

Respostas:


8

Aqui está uma facada.

Postscript

[ Contagem excluída porque esta não é uma questão de golfe. ]

xkcd1064

Foi adicionada uma seção "estilo" para torná-la mais desenhada à mão.

xkcd1064, mais "desenhado à mão"

Edit: Helvetica responde melhor que Courier. Ajustou e aprimorou esta seção "estilo". E acrescentou comentários.

xkcd1064, ainda mais "desenhado à mão" do que antes

%!

%futz with a coordinate pair
/f { 2 { rand 100 mod 100 div 1.47 mul
        dup .4 mul sub add
        exch } repeat } def

/op 2 array def %original point
/cp 2 array def %current point
/setcp { 2 copy cp astore pop } def %set current point
/difcp { cp aload pop %x' y' x y   %diff between cp and point on stack
    3 2 roll exch sub %x' x y'-y
    3 1 roll sub %y'-y x'-x
    exch %dx dy
} def
/scale2 { /n exch def  %scale two values
    n mul exch n mul exch
} def
/add2 {
    3 2 roll add
    3 1 roll add exch
} def
%futz with a path
/fpath {
    2 {
    %flattenpath
    % replace lines with curves
    [ { setcp cp op copy pop /moveto cvx }
        {
            %cp aload pop 4 2 roll 2 copy
            2 copy difcp %x3 y3 x30 y30
            2 copy 1 4 div scale2 %x3 y3 x30 y30 (1/3)x30 (1/3)y30
            cp aload pop add2 %x3 y3 x30 y30 x1 y1
            4 2 roll 3 4 div scale2 %x3 y3 x1 y1 (2/3)x30 (2/3)y30
            cp aload pop add2 %x3 y3 x1 y1 x2 y3
            6 4 roll %x1 y1 x2 y2 x3 y3
            setcp
            /curveto cvx }
        { setcp /curveto cvx }
        { op cp copy pop /closepath cvx } pathforall ] cvx newpath exec
    % chop the curves
    flattenpath
    % futz all the points
    [ { f
        /moveto cvx }
        { f
            /lineto cvx }
        { %f
            f 6 2 roll
            f 6 2 roll
            f 6 2 roll
            2 copy
            /curveto cvx
            3 1 roll
            3{f}repeat /lineto cvx % extra triple-futz'd line after each curve
        }
        { /closepath cvx } pathforall ] cvx newpath exec
    } repeat
} def

%futz with strokes
/oldstroke /stroke load def
/stroke { fpath oldstroke } def

%futz with fills
/oldfill /fill load def
/fill { fpath oldfill } def

%make sure rectstroke doesn't bypass being futzed with
/rectstroke {
    4 2 roll moveto
    1 index 0 rlineto
    0 exch rlineto
    neg 0 rlineto
    closepath
    stroke
} def

%futz with strings
%by making sure show uses our futz'd fill
/show { gsave currentpoint newpath moveto dup
    false charpath 1{fpath}repeat fill grestore stringwidth rmoveto } def

%fatter lines
1 setlinejoin %round joins
currentlinewidth 1.9 mul setlinewidth
%chop curves very small so there's lots of points for futzing
currentflat 6 div setflat

/Helvetica 10 selectfont

<<
/in{72 mul}
>>begin
1 in 1 in translate

0 0 6 in 4 in rectstroke
1 in 3 in moveto (WALKING BACK TO MY) show
1 in 2.8 in moveto (FRONT DOOR AT NIGHT:) show

36 3.5 in moveto
0 -2.8 in rlineto
5 in 0 rlineto
3.45 in .55 in moveto
0 20 rlineto
4.05 in .55 in moveto
0 20 rlineto
2.7 in .40 in moveto
(YARD  STEPS DOOR  INSIDE ) show
0 .05 in rmoveto
.4 in 0 rlineto
currentpoint
stroke
moveto
-10 3 rlineto
0 -6 rlineto fill

2.6 in .45 in moveto
-2 in 0 rlineto
currentpoint
stroke
moveto
10 3 rlineto
0 -6 rlineto fill

(FEAR) .9 in 2.3 in moveto show
(THAT THERE'S) .9 in 2.1 in moveto show
(SOMETHING) .9 in 1.9 in moveto show
(BEHIND ME) .9 in 1.7 in moveto show
1.8 in 1.86 in moveto
2 -26 rlineto
stroke

(FORWARD) 2.2 in 2.1 in moveto show
(SPEED) 2.2 in 1.9 in moveto show
2.75 in 2 in moveto
3 -13 rlineto
stroke

(EMBARRASSMENT) 4.5 in 2.5 in moveto show
4.6 in 2.65 in moveto
-2 20
-5 22
-27 25 rcurveto
stroke

.6 setgray %gray
40 1.6 in moveto
2.7 in 0
2.9 in 20
3.2 in 1.5 in rcurveto
10 20
20 20
30 0 rcurveto
15 -1.7 in
30 -1.8 in
1.4 in -2 in rcurveto
stroke

0 0 1 setrgbcolor %blue
40 1.2 in moveto
.9 in 27
.8 in 20
1.4 in 21 rcurveto
1 in -20
1.2 in 6
1.3 in 1.6 in rcurveto
    10 20
    20 20
    30 0 rcurveto
15 -1.8 in
30 -1.9 in
1.8 in -2.1 in rcurveto
stroke

1 0 0 setrgbcolor %red
40 .9 in moveto
3.3 in 0
3.5 in 20
3.6 in 1.5 in rcurveto
10 72
20 80
30 80 rcurveto
.7 in -10
.3 in -35
1.1 in -40 rcurveto
stroke

%thank you for scrolling all the way down to here. :)

você pode adicionar um pouco da estilização "desenhada à mão"? :)
Sam Ax

Sim. Eu ignorei completamente esse aspecto a princípio. E então, quando segui os links, fiquei completamente impressionado. Linhas gordas não devem ser demais. E eu tenho um método da Casselman para reinterpretar um caminho. Portanto, se eu puder entender essas transformações do mathematica, devo poder replicá-las. Uma tarefa muito maior do que eu pensava originalmente.
Luser droog

Mesmo sem essas qualidades, um trabalho muito, muito bom.
Sam Ax

E um excelente trabalho no estilo!
Sam Aix

7

HTML5

@font-face {
  font-family: 'Humor Sans';
  font-style: normal;
  font-weight: 400;
  src: local('Humor Sans'), local('Humor Sans-Regular'), url("data:font/woff;base64,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") format('woff');
}
body {
    font-family: 'Humor Sans';
    margin: 2em;
    background: #DDD;
    text-shadow: 1px 1px 2px #FFF;
}
h1 {
    font-family:Lucida,Helvetica,sans-serif;
}
.h1d {
    display: inline;
    font-size: .8em;
}
path,rect { fill: none;
    stroke:#000000;
    stroke-width:0.00329859;
    stroke-linecap:butt;
    stroke-linejoin:round;
    stroke-miterlimit:10.43299961;
 }
text {
    text-align:start;
    letter-spacing:0px;
    word-spacing:0px;
    writing-mode:lr-tb;
    font-size:14px;
    text-anchor:start;
    fill:#000000;
    fill-opacity:1;
    stroke:none;
    font-family:Humor Sans;
}
text {
    font-size:0.01944444px;
    text-anchor:middle;
    fill:#000000;
    fill-opacity:1;
    stroke:none;
    font-family:Humor Sans;
}
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Front Door ( from xkcd.com 1064 )</title>
  </head>
<body><h1>Front Door <div class="h1d">( from xkcd.com 1064 )</div></h1>
<svg xmlns="http://www.w3.org/2000/svg" width="640" height="434"
   version="1.1" viewBox="0 0 0.7876308 0.53355077">
  <defs>
    <marker id="Aen" style="overflow:visible">
      <path d="M 0,0 5,-5 -12.5,0 5,5 0,0 z" transform="matrix(-0.4,0,0,-0.4,-4,0)"
         style="fill-rule:evenodd;fill:#000;stroke:#000000;stroke-width:1pt" />
    </marker>
    <marker orient="auto" id="Ast" style="overflow:visible">
      <path d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
         transform="matrix(-0.4,0,0,-0.4,-1.4,0)"
         style="fill-rule:evenodd;fill:#000;stroke:#000000;stroke-width:1pt" />
    </marker>
  </defs>
  <rect width="0.75612795" height="0.50201935" x="0.015758738" y="0.015780471" />
  <path d="m 0.08162198,0.08036774 c -3.384e-4,3.2166e-4 -7.6617e-4,0.35262886 -7.6617e-4,0.35262886 0,0 0.20318503,-6.6026e-4 0.29000566,-0.003213 0.0402085,3.6731e-4 0.0806898,-1.3866e-4 0.12100339,-4.2191e-4 0.0422491,-4.676e-5 0.0848177,0.001196 0.12714108,1.4026e-4 0.0292134,0.0012 0.0579496,7.8663e-4 0.0872307,8.041e-5" />
  <path d="M 0.45045642,0.44967094 C 0.45097434,0.43767424 0.44992661,0.42569324 0.4498655,0.41370014" />
  <path d="m 0.52462262,0.44857719 c 0.001364,-0.0112841 -0.001303,-0.022673 8.8508e-4,-0.0339046" />
  <path d="m 0.34455432,0.46185837 c -0.0838098,-0.00177 -0.16763839,9.02e-5 -0.25145536,-4.499e-4" style="marker-end:url(#Ast)" />
  <path d="m 0.36372087,0.26833529 c 3.15e-6,-3.093e-5 0.003925,0.021959 0.003958,0.0219625" />
  <path d="m 0.59455272,0.18635665 c 0.00168,-0.0249062 -0.0194278,-0.0449558 -0.0436226,-0.042955 -0.001466,-1.5486e-4 -0.002932,-3.0973e-4 -0.004398,-4.6459e-4" />
  <path d="m 0.08896568,0.31883844 c 0.0589995,-0.004388 0.11835478,4.8486e-4 0.17689559,-0.007727 0.0452821,-0.002558 0.0920316,-0.008761 0.13292997,-0.0296799 0.0495136,-0.0206019 0.0702543,-0.0754087 0.082167,-0.12423165 -0.001544,-0.0316524 0.0363005,-0.0771322 0.0574533,-0.031946 0.009799,0.0468904 0.0124403,0.0957944 0.0257953,0.14199884 0.0103229,0.0424564 0.0381648,0.0821154 0.0814383,0.0955288 0.0230248,0.006738 0.0463641,0.0136174 0.0701731,0.01698" style="stroke:#888" />
  <path d="m 0.08766361,0.36678952 c 0.0463076,-0.0161779 0.0920382,-0.0420708 0.14283849,-0.0357173 0.0467333,-0.004581 0.0974621,0.0266481 0.14082991,-0.00179 0.0400306,-0.0301432 0.041483,-0.0866619 0.0490443,-0.13214834 0.003929,-0.030081 -0.00375,-0.0999028 0.0422392,-0.0879794 0.0291414,0.0376662 0.0177989,0.0902038 0.0319018,0.1336763 0.009362,0.0507676 0.0330856,0.10817744 0.0871312,0.12415282 0.0508722,0.0193263 0.0767224,0.0174745 0.11889504,0.0257316" style="stroke:#00f" />
  <path d="m 0.08912193,0.4046365 c 0.10169167,1.097e-5 0.2041028,3.5438e-4 0.3047905,-0.0155419 0.0458292,-0.008171 0.0971567,-0.0242812 0.12178371,-0.0670869 0.025388,-0.0534434 0.0183231,-0.11451516 0.0333489,-0.17061477 -0.003977,-0.0433016 0.0436224,-0.0993166 0.0831427,-0.0568712 0.0246552,0.0226559 0.0477548,0.0560862 0.0858377,0.0521295" style="stroke:#f00" />
  <path d="m 0.70840577,0.46185837 c -0.002849,8.248e-5 -0.0849355,0.001616 -0.0849355,0.001616" style="marker-start:url(#Aen)" />
  <path d="m 0.24465913,0.2858699 c 9.6794e-4,0.0147144 0.001383,0.0294673 0.002814,0.0441494" />
  <text x="100.15588" y="48.485607" transform="scale(0.00138889,0.00138889)"
    style="font-size:14px;text-anchor:start">
    <tspan x="100.15588" y="48.485607" id="tspan7010">WALKING BACK TO MY</tspan>
    <tspan x="100.15588" y="65.285591" id="tspan7012">FRONT DOOR AT NIGHT:</tspan></text>
  <rect width="0.24843951" height="0.065260872" x="0.12345294" y="0.039088331" />
  <text x="0.23551519" y="0.20231472"><tspan x="0.23551519" y="0.20231472">fear</tspan>
    <tspan x="0.23551519" y="0.22564805">ThAT there's</tspan>
    <tspan x="0.23551519" y="0.24898137">something</tspan>
    <tspan x="0.23551519" y="0.2723147">behing me</tspan></text>
  <text x="0.36015913" y="0.22917171"><tspan x="0.36015913" y="0.22917171">fORWarD</tspan>
    <tspan x="0.36015913" y="0.25250503">SPEED</tspan></text>
  <text x="0.37393194" y="0.46812996"><tspan x="0.37393194" y="0.46812996">yarD</tspan>
    <tspan x="0.45037103" y="0.46812996">step</tspan>
    <tspan x="0.52267832" y="0.46812996">door</tspan>
    <tspan x="0.58878779" y="0.46812996">inside</tspan></text>
  <text x="0.63905853" y="0.20506927">
    <tspan x="0.63905853" y="0.20506927">emBARRASSMENT</tspan></text>
</svg>
</body></html>


4

Pitão

Utiliza o método xkcd ligeiramente trapaceiro-y no matplotlib:

import numpy as np
import matplotlib.pyplot as plt
from scipy.ndimage.filters import gaussian_filter1d

plt.xkcd()

x = np.linspace(0,10,1000)
unit = np.linspace(0,1,100)

speed = np.r_[np.ones(500)*3,3+5*unit**4.,np.ones(100)*8,1+7*unit[::-1]**2,np.ones(200)]
speed = gaussian_filter1d(speed,18)

fear = np.r_[np.linspace(0.5,2,450),2+6*unit**4,np.ones(100)*8,8*unit[::-1]**2,np.zeros(250)+0.1]
fear = gaussian_filter1d(fear,18)
fear_gauss_bump = 0.8*np.exp(-np.power(x-2.5,2.)/(2*np.power(1, 2.)))
fear += fear_gauss_bump

embarrassment = np.r_[np.zeros(600)+0.1, 9.5*unit**2, 9.5-np.linspace(0,1.5,300)]
embarrassment = gaussian_filter1d(embarrassment,60)

plt.figure(figsize=(12,6))
plt.plot(x,speed,c="gray")
plt.plot(x,fear,c="#1E9FDB")
plt.plot(x,embarrassment,c="r")

plt.plot([2.5,2.7],[3.9,2.3],c='k')
plt.plot([4.3,4.5],[3.6,3.1],c='k')
plt.plot(np.linspace(7.3,7.8,15),(0.25-(np.linspace(7.3,7.8,15)-7.3)**2)**0.5+7,c='k')

ax = plt.gca()
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.get_xaxis().tick_bottom()
ax.get_yaxis().tick_left()
#plt.ylim([0,10])
ax.set_xticks([6,7])
ax.set_xticklabels(["STEPS","DOOR"])
ax.set_yticks([])

ax.text(2,4,"FEAR\nTHAT THERE'S\nSOMETHING\nBEHIND ME",horizontalalignment='center')
ax.text(3.9,3.4,"FORWARD\nSPEED",horizontalalignment='center')
ax.text(7.4,6.6,"EMBARRASSMENT")
ax.text(1,8,"WALKING BACK TO MY\nFRONT DOOR AT NIGHT:",bbox={'facecolor':'none', 'edgecolor':'black'})
ax.annotate("YARD", xy=(0.5,-0.3), xytext=(4.5,-0.4),annotation_clip=False,arrowprops={'facecolor':'black', 'shrink':0.01, 'width':0.5})
ax.annotate("INSIDE", xy=(10,-0.3), xytext=(7.5,-0.4),annotation_clip=False,arrowprops={'facecolor':'black', 'shrink':0.01, 'width':0.5})

plt.show()

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.