Interactive Web-Based Data Visualization With R, Plotly, and Shiny 1st Edition Carson Sievert 2024 Scribd Download
Interactive Web-Based Data Visualization With R, Plotly, and Shiny 1st Edition Carson Sievert 2024 Scribd Download
com
https://textbookfull.com/product/interactive-web-based-data-
visualization-with-r-plotly-and-shiny-1st-edition-carson-
sievert/
OR CLICK BUTTON
DOWNLOAD NOW
https://textbookfull.com/product/biota-grow-2c-gather-2c-cook-loucas/
textboxfull.com
https://textbookfull.com/product/interactive-data-visualization-for-
the-web-murray/
textboxfull.com
https://textbookfull.com/product/interactive-data-visualization-for-
the-web-an-introduction-to-designing-with-d3-1st-edition-murray/
textboxfull.com
https://textbookfull.com/product/interactive-data-visualization-for-
the-web-an-introduction-to-designing-with-d3-2nd-edition-scott-murray/
textboxfull.com
ggplot2 Elegant Graphics For Data Analysis Second Edition
Hadley Wickham Carson Sievert
https://textbookfull.com/product/ggplot2-elegant-graphics-for-data-
analysis-second-edition-hadley-wickham-carson-sievert/
textboxfull.com
https://textbookfull.com/product/modern-data-visualization-with-r-
chapman-hall-crc-the-r-series-1st-edition-kabacoff/
textboxfull.com
https://textbookfull.com/product/learning-ipython-for-interactive-
computing-and-data-visualization-second-edition-cyrille-rossant/
textboxfull.com
https://textbookfull.com/product/building-responsive-data-
visualization-for-the-web-1st-edition-hinderman/
textboxfull.com
https://textbookfull.com/product/data-visualization-representing-
information-on-modern-web-1st-edition-kirk/
textboxfull.com
Interactive Web-Based
Data Visualization with
R, plotly, and shiny
Chapman & Hall/CRC
The R Series
Series Editors
John M. Chambers, Department of Statistics, Stanford University, California, USA
Torsten Hothorn, Division of Biostatistics, University of Zurich, Switzerland
Duncan Temple Lang, Department of Statistics, University of California, Davis, USA
Hadley Wickham, RStudio, Boston, Massachusetts, USA
Geocomputation with R
Robin Lovelace, Jakub Nowosad, Jannes Muenchow
Carson Sievert
CRC Press
Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300
Boca Raton, FL 33487-2742
This book contains information obtained from authentic and highly regarded sources. Reasonable
efforts have been made to publish reliable data and information, but the author and publisher cannot
assume responsibility for the validity of all materials or the consequences of their use. The authors and
publishers have attempted to trace the copyright holders of all material reproduced in this publication
and apologize to copyright holders if permission to publish in this form has not been obtained. If any
copyright material has not been acknowledged please write and let us know so we may rectify in any
future reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced,
transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or
hereafter invented, including photocopying, microfilming, and recording, or in any information
storage or retrieval system, without written permission from the publishers.
For permission to photocopy or use material electronically from this work, please access
www.copyright.com (http://www.copyright.com/) or contact the Copyright Clearance Center, Inc.
(CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. CCC is a not-for-profit organization
that provides licenses and registration for a variety of users. For organizations that have been granted
a photocopy license by the CCC, a separate system of payment has been arranged.
Trademark Notice: Product or corporate names may be trademarks or registered trademarks and
are used only for identification and explanation without intent to infringe.
1 Introduction 1
1.1 Why interactive web graphics from R? . . . . . . . . . 1
1.2 What you will learn . . . . . . . . . . . . . . . . . . 7
1.3 What you won’t learn (much of) . . . . . . . . . . . . 12
1.3.1 Web technologies . . . . . . . . . . . . . . . 12
1.3.2 d3js . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.3 ggplot2 . . . . . . . . . . . . . . . . . . . . . 12
1.3.4 Graphical data analysis . . . . . . . . . . . . 13
1.3.5 Data visualization best practices . . . . . . . 13
1.4 Prerequisites . . . . . . . . . . . . . . . . . . . . . . 13
1.5 Run code examples . . . . . . . . . . . . . . . . . . . 14
1.6 Getting help and learning more . . . . . . . . . . . . 14
1.7 Acknowledgments . . . . . . . . . . . . . . . . . . . 15
1.8 Colophon . . . . . . . . . . . . . . . . . . . . . . . . 16
I Creating views 21
2 Overview 23
2.1 Intro to plot_ly() . . . . . . . . . . . . . . . . . . . . 23
2.2 Intro to plotly.js . . . . . . . . . . . . . . . . . . . . 32
2.3 Intro to ggplotly() . . . . . . . . . . . . . . . . . . . 36
3 Scattered foundations 45
3.1 Markers . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.1.1 Alpha blending . . . . . . . . . . . . . . . . . 52
3.1.2 Colors . . . . . . . . . . . . . . . . . . . . . . 53
3.1.3 Symbols . . . . . . . . . . . . . . . . . . . . . 56
3.1.4 Stroke and span . . . . . . . . . . . . . . . . 59
3.1.5 Size . . . . . . . . . . . . . . . . . . . . . . . 60
3.1.6 Dotplots and error bars . . . . . . . . . . . . 62
vii
viii Contents
3.2 Lines . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.2.1 Linetypes . . . . . . . . . . . . . . . . . . . . 64
3.2.2 Segments . . . . . . . . . . . . . . . . . . . . 66
3.2.3 Density plots . . . . . . . . . . . . . . . . . . 73
3.2.4 Parallel coordinates . . . . . . . . . . . . . . 74
3.3 Polygons . . . . . . . . . . . . . . . . . . . . . . . . 77
3.3.1 Ribbons . . . . . . . . . . . . . . . . . . . . . 79
4 Maps 81
4.1 Integrated maps . . . . . . . . . . . . . . . . . . . . 82
4.1.1 Overview . . . . . . . . . . . . . . . . . . . . 82
4.1.2 Choropleths . . . . . . . . . . . . . . . . . . 91
4.2 Custom maps . . . . . . . . . . . . . . . . . . . . . . 94
4.2.1 Simple features (sf) . . . . . . . . . . . . . . 94
4.2.2 Cartograms . . . . . . . . . . . . . . . . . . . 101
6 Boxplots 115
7 2D frequencies 119
7.1 Rectangular binning in plotly.js . . . . . . . . . . . . 119
7.2 Rectangular binning in R . . . . . . . . . . . . . . . 120
7.3 Categorical axes . . . . . . . . . . . . . . . . . . . . 122
8 3D charts 125
8.1 Markers . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.2 Paths . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.3 Lines . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.4 Axes . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.5 Surfaces . . . . . . . . . . . . . . . . . . . . . . . . 130
Bibliography 421
Index 433
1
Introduction
1
2 1 Introduction
FIGURE 1.1: The stages of a data science workflow from Wickham and
Grolemund (2016).
library(ggplot2)
ggplot(mpg, aes(displ, hwy)) + geom_point()
4 1 Introduction
Figure 1.3 demonstrates how we can transform Figure 1.2 into an inter
active version that can be used to query and inspect points of interest.
The framework that enables this kind of linked brushing is discussed
in depth within Section 16.1, but the point here is that the added ef
fort required to enable such functionality is relatively small. This is
important, because although interactivity can augment exploration by
allowing us to pursue follow-up questions, it’s typically only practical
when we can create and alter them quickly. That’s because, in a true
exploratory setting, you have to make lots of visualizations, and inves
tigate lots of follow-up questions, before stumbling across something
truly valuable.
library(plotly)
m <- highlight_key(mpg)
p <- ggplot(m, aes(displ, hwy)) + geom_point()
gg <- highlight(ggplotly(p), "plotly_selected")
crosstalk::bscols(gg, DT::datatable(m))
1.1 Why interactive web graphics from R? 5
When a valuable insight surfaces, since the code behind Figure 1.3
generates HTML, the web-based graphic can be easily shared with
collaborators through email and/or incorporated inside a larger auto
mated report or website. Moreover, since these interactive graphics
are based on the htmlwidgets framework, they work seamlessly in
side larger rmarkdown documents, inside shiny apps, RStudio, Jupyter
notebooks, the R prompt, and more. Being able to share interactive
graphics with collaborators through these different mediums enhances
the conversation – your colleagues can point out things you may not yet
have considered and, in some cases, they can get immediate responses
from the graphics themselves.
In the final stages of an analysis, when it comes time to publish your
work to a general audience, rather than relying on the audience to
interact with the graphics and discover insight for themselves, it’s
always a good idea to clearly highlight your findings. For example,
from Figure 1.3, we’ve learned that most of these unusual points can
be explained by a single feature of the data (model == 'corvette'). As
shown in Figure 1.4, the geom_mark_hull() function from the ggforce
package provides a helpful way to annotate those points with a hull.
Moreover, as Chapter 12 demonstrates, it can also be helpful to add
6 1 Introduction
library(ggforce)
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
geom_mark_hull(aes(filter = model == "corvette", label = model)) +
labs(
title = "Fuel economy from 1999 to 2008 for 38 car models",
caption = "Source: https://fueleconomy.gov/",
x = "Engine Displacement",
y = "Miles Per Gallon"
)
This simple example quickly shows how interactive web graphics can
assist EDA (for another, slightly more in-depth example, see Section
2.3). Being able to program these graphics from R allows one to combine
1.2 What you will learn 7
FIGURE 1.6: An example of what you’ll learn: Figure 16.21. For a video
demonstration of the interactive, see https://bit.ly/storms-preview.
For the interactive, see https://plotly-r.com/interactives/storms.html
1.2 What you will learn 9
By going through the code behind these examples, you’ll see that many
of them leverage other R packages in their implementation. To highlight
a few of the R packages that you’ll see:
• dplyr and tidyr
– For transforming data into a form suitable for the visualiza
tion method.
• ggplot2 and friends (e.g., GGally, ggmosaic, etc.)
– For creating plotly visualizations that would be tedious to
implement without ggplotly().
• sf, rnaturalearth, cartogram
– For obtaining and working with geo-spatial data structures
in R.
• stats, MASS, broom, and forecast
– For working with statistical models and summaries.
• shiny
– For running R code in response to user input.
• htmltools, htmlwidgets
– For combining multiple views and saving the result.
This book contains six parts and each part contains numerous chapters.
A summary of each part is provided below.
10 1 Introduction
You might already notice that this book often uses the term ‘view’ or
‘data view’, so here we take a moment to frame its use in a wider con
text. As Wills (2008) puts it: “a ‘data view’ is anything that gives the
user a way of examining data so as to gain insight and understanding.
A data view is usually thought of as a barchart, scatterplot, or other
traditional statistical graphic, but we use the term more generally, in
cluding ‘views’ such as the results of a regression analysis, a neural net
prediction, or a set of descriptive statistics”. In this book, more often
than not, the term ‘view’ typically refers to a plotly graph or other html
widgets (e.g., DT, leaflet, etc.). In particular, Section 16.1 is all about
linking multiple htmlwidgets together through a graphical database
querying framework. However, the term ‘view’ takes on a more general
interpretation in Chapter 17 since the reactive programming frame
work that shiny provides allows us to have a more general conversation
surrounding linked data views.
12 1 Introduction
1.3.2 d3js
The JavaScript library D3 is a great tool for data visualization assuming
you’re familiar with web technologies and are primarily interested
in expository (not exploratory) visualization. There are already lots
of great resources for learning D3, including the numerous books by
Murray (2013) and Murray (2017). It’s worth noting, however, if you do
know D3, you can easily leverage it from a webpage that is already a
plotly graph, as demonstrated in Figure 22.1.
1.3.3 ggplot2
The book does contain some ggplot2 code examples (which are then
converted to plotly via ggplotly()), but it’s not designed to teach you
1.5 Prerequisites 13
1.4 Prerequisites
For those new to R and/or data visualization, R for Data Science2 pro
vides an excellent foundation for understanding the vast majority of
concepts covered in this book (Wickham and Grolemund, 2016). In
particular, if you have a solid grasp on Part I: Explore3 , Part II: Wran
gle4 , and Part III: Program5 , you should be able to understand almost
everything here. Although not explicitly covered, the book does make
references to (and was creating using) rmarkdown, so if you’re new to
rmarkdown, I also recommend reading the R Markdown chapter6 .
2
https://r4ds.had.co.nz/
3
https://r4ds.had.co.nz/explore-intro.html
4
https://r4ds.had.co.nz/wrangle-intro.html
5
https://r4ds.had.co.nz/program-intro.html
6
https://r4ds.had.co.nz/r-markdown.html
14 1 Introduction
library(plotly)
If a particular code chunk doesn’t work, you may need to load packages
from previous examples in the chapter (some examples assume you’re
following the chapter in a linear fashion).
If you’d like to run examples on your local machine (instead of RStudio
Cloud), you can install all the necessary R packages with:
if (!require(remotes)) install.packages("remotes")
remotes::install_github("cpsievert/plotly_book")
1.7 Acknowledgments
This book wouldn’t be possible without the generous assistance and
mentorship of many people:
• Heike Hofmann and Di Cook for their mentorship and many helpful
conversations about interactive graphics.
• Toby Dylan Hocking for many helpful conversations, his mentor-
ship in the R packages animint and plotly, and laying the original
foundation behind ggplotly().
• Joe Cheng for many helpful conversations and inspiring Section 16.1.
• Étienne Tétreault-Pinard, Alex Johnson, and the other plotly.js core
developers for responding to my feature requests and bug reports.
• Yihui Xie for his work on knitr, rmarkdown, bookdown, bookdown
crc10 , and responding to my feature requests.
• Anthony Unwin for helpful feedback, suggestions, and for inspiring
Figure 16.13.
• Hadley Wickham and the ggplot2 team for maintaining ggplot2.
• Hadley Wickham and Garret Grolemund for writing R for Data Science
and allowing me to model this introduction after their introduction.
• Kent Russell for contributions to plotly, htmlwidgets, and reactR.
• Adam Loy for inspiring Figure 14.5.
7
https://r4ds.had.co.nz/introduction.html#getting-help-and-learning-more
8
https://community.rstudio.com/tags/plotly
9
https://www.tidyverse.org/help/
10
https://github.com/yihui/bookdown-crc
16 1 Introduction
1.8 Colophon
An online version of this book is available at https://plotly-r.com. It
will continue to evolve in between reprints of the physical book. The
source of the book is available at https://github.com/cpsievert/plotly_
book. The book is powered by https://bookdown.org which makes it easy
to turn R markdown files into HTML, PDF, and EPUB.
This book was built with the following computing environment:
devtools::session_info("plotly")
#> - Session info -------------------------------------
#> setting value
#> version R version 3.6.1 (2019-07-05)
#> os macOS Mojave 10.14.5
#> system x86_64, darwin15.6.0
#> ui X11
#> language (EN)
#> collate en_US.UTF-8
#> ctype en_US.UTF-8
#> tz America/Chicago
#> date 2019-10-07
#>
#> - Packages -----------------------------------------
#> package * version date lib
#> askpass 1.1 2019-01-13 [1]
#> assertthat 0.2.1 2019-03-21 [1]
#> backports 1.1.5 2019-10-02 [1]
#> base64enc 0.1-3 2015-07-28 [1]
#> BH 1.69.0-1 2019-01-07 [1]
#> cli 1.1.0 2019-03-19 [1]
#> colorspace 1.4-1 2019-03-18 [1]
Other documents randomly have
different content
Le vieux ronflait dans la salle basse.
Il ne se douterait de rien.
D’ailleurs, mon amour-propre ne me permettait plus de reculer.
Bravement, je détachai ma ceinture de corde, je l’enroulai autour
de mon poignet pour me conserver un point d’appui en cas de
vertige, et je me courbai vers la fenêtre, mon front juste à la
hauteur de la vitre.
Alors, je lâchai la corde et je poussai un cri.
J’avais vu, oui, j’avais bien vu… derrière l’étroit miroir de verre,
une autre tête que la mienne qui me regardait.
Je demeurai un instant collé contre la muraille, les cheveux droits
d’épouvante, les paumes mouillées, me maintenant par miracle.
Je devais me tromper, rêver ! Ça ne pouvait être le possible.
Sous le grillage de fer, le cristal, intact, s’embuait. On eût dit qu’il
y avait de l’eau à l’intérieur de cette fenêtre-là.
C’était comme les parois d’un aquarium où nagerait le monstre
rare.
Mais on y voyait assez, tout de même, pour découvrir une longue
chevelure éplorée, blonde, décolorée, presque blanche, entourant
l’ovale d’un visage horriblement triste, un jeune visage de femme
contemplant la mer de ses yeux pleins de larmes…
Comme le soleil frappait sur ces yeux, ils brillèrent…
J’eus un étourdissement, et je me laissai aller, lâchant tout.
Je me tirai de l’océan sans trop savoir de quelle façon. Je suis
bon nageur. Seulement, dégringoler dans les courants d’Ar-Men,
c’est dégringoler dans la mort. Je filai au fond, je touchai le roc, puis
je remontai, ne pensant plus du tout, je vous jure, à la femme de là-
haut. Je redevins un brave animal d’homme qui essaye de se sauver,
et je me mis à nager ferme, tantôt dessus, tantôt dessous la vague,
m’efforçant de tourner dans la giration naturelle du courant,
n’espérant pas grand chose.
J’atteignis le bas de l’esplanade, et je fus roulé sur la pente,
repris, relancé par l’eau qui jouait avec moi comme avec un
bouchon.
Si la mer avait été plus violente, elle m’eût mis en morceaux,
mais elle venait de faire la noce, et elle semblait fatiguée de tuer du
monde.
Je me retrouvai presque debout devant l’escalier nord.
Alors mes dents claquèrent. J’eus un frisson, et je retombai sur
les dalles visqueuses, n’ayant plus ma connaissance.
Le vieux me soigna. (Quels soins, mon Dieu !)
Je passai huit jours au lit.
Il m’avait ramassé au bord du roc, ne comprenant pas pourquoi
j’étais étendu là, tout mouillé, paquet de linge sortant de la lessive.
La corde, pendant du chemin de ronde, lui expliqua la moitié de
la vérité.
— Ben, fit-il, durant que je rouvrais les yeux, ça t’apprendra, mon
garçon, à les choisir trop courtes.
Il me donnait des grogs dans lesquels il fourrait du poivre, un
remède infernal, et il y aurait ajouté volontiers un peu de pétrole
pour les corser en goût ; seulement, moi, malin, je refusai de boire.
J’avais peur de lui, une peur folle.
Il était celui qui guérissait des femmes !
Le médecin ne pourrait me visiter que lors du passage du Saint-
Christophe. On ne saurait donc rien ni de ma maladie ni de mon
probable trépas.
Et je me résolus à vivre coûte que coûte.
Un matin, je me levai, je fis mon service du mieux que je pus.
Le vieux me regardait, l’air moqueur :
— Te voici gaillard, eh ! eh !… faut toujours sauver sa peau,
même quand on n’a pas de chemise…
Il plaisantait, tournait autour de moi et paraissait meilleur
compagnon. Du grand navire perdu, pas un mot.
Les épaves demeuraient invisibles à l’horizon, et les noyés
(heureusement pour moi) avaient depuis longtemps gagné le large.
Le vieux, toujours à l’affut, son harpon dans la main, ne parlait pas
des belles filles recueillies.
Chose étrange, le souvenir de cette tête entrevue derrière la vitre
d’un hublot s’effaçait peu à peu de mon cerveau fatigué par l’éternel
bruit du vent. Je pensais avoir mal vu, des hallucinations, un rêve
continué tout éveillé. J’avais eu tant de rudes émotions la nuit du
naufrage. Pas étonnant si je battais la campagne. Un reflet bizarre
de soleil, le jeu d’une ombre entre les barreaux, mon propre visage
se mirant à une heure où j’étais plus nerveux que de coutume,
surtout éreinté par tant de manies ridicules…
Puisque je voyais des femmes dans tous les coins, le mieux serait
d’en aller chercher à Brest, où on les trouvait plus réellement.
Et ce fut, après ma maladie de langueur, une indomptable
résurrection de ma virilité.
On héla, du phare au Saint-Christophe, que le second gardien
sortirait.
— Ma pauvre vieille, répétait le maître de la chauffe, ma pauvre
vieille, ça ne va donc pas ?
Notre officier ajoutait, d’un ton sévère :
— Vous avez mauvaise mine, le Maleux !
A Brest, je ne reconnus pas une rue, que je connaissais pourtant
bien, parce qu’on avait achevé ses embellissements, des tas de
maisons neuves construites depuis mon dernier voyage.
Il me semblait que je revenais sur terre après ma mort.
Les gens avaient des habits singuliers, les femmes de la belle
société portaient des manches énormes, comme des ballons, et je
les avais laissées ayant encore des bras normaux.
Du côté du Minou, à la fine pointe de Brest, l’auberge-mercerie
était louée à deux cabaretiers mâles qui paraissaient plus ivres que
leurs clients, de sales rôdeurs mal vêtus.
J’entrai, je déjeunai et je demandai des nouvelles des anciennes
propriétaires de ce cabaret borgne.
— Ah ! la mère Bretellec, elle a rentré en ville, s’a mis fruitière.
— Et la petite Marie ?
— La petite Marie… sa servante ?
— Non, sa nièce.
— Nous ne connaissons point ça.
— Une fillette brune, insistai-je, le cœur douloureusement serré.
— Ben ! Elle aura peut-être mal tourné.
Ils se mirent à rire de mon air confus.
— C’est point si rare, que les filles tournent mal, camarade !
Je me retirai, n’osant pas en demander davantage.
J’errais de-ci de-là, comme un chien sans gîte. Je possédais de
l’argent, assez d’argent pour boire des consommations de choix, et
je bus.
Je choisis un grand café du côté de l’Arsenal, un café très chic où
venaient des officiers galonnés.
Je me fourrai derrière un pilier, un beau pilier habillé de velours
rouge et couronné par des crampons d’or, histoire de suspendre des
chapeaux. Bien respectueusement, j’y accrochai mon béret, puis je
sortis ma pipe, je fumai longtemps, face à face avec mon absinthe.
Je m’entourai de nuages, et la nuance verte du verre me donnait
une impression bizarre : j’étais devant un aquarium rempli d’eau
trouble, un visage mélancolique passait derrière les parois opalisées
du cristal.
Pour que la vision demeurât plus longtemps sous mes yeux
abrutis, je remplissais le verre très souvent. Puis je changeai la
nuance de l’eau, je mis des liqueurs de groseilles, des eaux-de-vie
brunes, des marcs blonds, aussi de temps à autre, pour imiter un
nuage ou du brouillard sur l’arc-en-ciel, un peu de la cendre de ma
pipe.
La nuit tomba. Il y eut des éclipses.
Je me trouvai au pied du phare qui était devenu tout rouge, un
phare sanglant couronné de grosses pointes d’or qui me menaçaient
comme des doigts en cornes ; j’essayai de grimper pour prendre
mon béret pendu à l’une de ces cornes, non, jamais je ne pourrais
l’atteindre !
— Ho ! Hisse ! Hisse en haut ! Je peux pas, nom de nom !
Et je faisais le geste de tirer sur le palan de la grue d’arrimage.
Un garçon me poussa dehors, après m’avoir extirpé une forte
somme. Je m’en allai, chantonnant le refrain du père Barnabas. Pas
heureux, pas malheureux non plus, ne pensant ni aux promises, ni
aux filles. Je m’en allai, ruminant des imbécillités.
— Est-ce qu’il fera beau demain ? Si je m’achetais du savon ? Ce
qu’elle doit s’embêter derrière la vitre, la tête de la mer !… Pas
moyen de grimper… mais quelle noce quand on la descendra !
Mazette ! Y se met bien le vieux ! Des demoiselles blondes dans la
prison de la marine… que le diable en prendrait les armes ! J’en aurai
le cœur net… faudra voir… Jean Maleux, marche droit ! Je te le dis,
t’es né sous la chance.
Malgré moi je quittais les quartiers riches pour gagner les petites
ruelles derrière l’Arsenal. Je connaissais la route par cœur, pour
l’avoir faite jadis quand je revenais de caboter avec le capitaine
Dartigues.
J’étais donc jeune, alors, que j’y mettais plus d’entrain ?
Je restais jeune, seulement la mer m’avait imprégné jusqu’aux
moelles de sa mélancolie, surtout depuis le jour où j’avais failli
sombrer en elle, corps et âme.
J’entrai dans une maison dont la porte, grande ouverte, bâillait
comme une gueule de loup féroce.
A l’intérieur, c’était tendu de rouge. Le rouge me poursuivait,
piquant mon regard de ses milles aiguilles trempées dans le vinaigre.
J’en avais bu et j’en rencontrai sur les piliers de café, sur les robes
des dames, dans les lanternes des voitures, maintenant le long des
murailles. C’était doux à toucher, c’était tiède, c’était bon…
J’entendis des voix chuchoteuses. On m’appelait : beau brun.
J’étais plus habitué à tant de politesse.
Je voulus ôter mon béret, et je m’aperçus que je l’avais perdu.
Des tas de grosses filles se moquèrent de moi, parce que je
cherchais mon béret : elles me bourraient, me pinçaient, me
tapaient dans le dos, me faisaient monter, descendre. Ce que je leur
fis, je n’en sais rien ! La patronne se fâcha et me jeta dehors.
J’entrai comme ça dans plus de cinq maisons qui, toutes,
ouvraient des grandes gueules rouges pour me happer, et, dans un
cabaret, des matelots, déjà terriblement saouls, m’invitèrent à boire
davantage.
Il s’agissait du Marceau, un cuirassé prenant la mer, et nous
chantâmes des complaintes lugubres en son honneur. C’est-y la mer
qui le prendrait ?
Je voyais filer à toute vitesse ce grand cheval noir de navire qui
s’était broyé sur la Baleine, par le travers de chez nous, et que les
autorités essayaient de repêcher du côté du Fromveur. Pour son
équipage, personne n’en causait plus.
Des idées formidables me tenaillaient le cerveau : faire la guerre
à la mer, étrangler la mer, couper sa tête.
Je serrais mon eustache sous ma ceinture. Je voyais du rouge
couler du plafond de la salle où nous buvions.
De nouveau, dans la rue, lâchant les camarades, je festonnais,
battant les murs. Ça tournait d’une façon vertigineuse. Plus aucun
bec de gaz, plus de lanternes de voitures, plus de phares sauveurs.
Je n’arriverais jamais nulle part cette nuit-là.
On entendait s’éloigner les chansons, les rires, les cris. J’étais
dans une petite ruelle infecte, marchant dans une boue vaseuse,
sentant la marée, une petite ruelle du côté, je pense, des bastions
de la ville.
Je me la rappellerai toujours cette petite rue-là… quand je
devrais vivre cent ans.
Elle se trouvait tellement étroite, tellement sombre que l’on n’y
aurait point reconnu son père, même en plein jour. Là-haut, tout là-
haut, les toits des maisons semblaient se rejoindre. Un ruisseau
clapotait, provenant bien sûr des bassins où l’on radoube — on s’en
doutait rien qu’à ses odeurs — ces trous où l’on jette plus de chats
crevés que de pelures de pommes.
Là aussi des portes s’ouvraient, se fermaient, happant les
promeneurs nocturnes, seulement les maisons étaient moins
luxueuses, et, dans quelques-unes, des filles exploitaient les pauvres
matelots, sans garantie du gouvernement.
Je ne sais pas pourquoi, j’eus peur tout d’un coup, une peur
inexplicable. Je serrais mon couteau. Je serrais mon couteau, en
pensant marcher à la bataille.
Toutes les caresses des bonnes putains, là-bas, parmi les fleuves
rouges des étoffes, ne m’avaient ni apaisé ni dégrisé ; tout le tapage
des joyeux compagnons, les marins du Marceau, me restait au fond
des oreilles comme des bruits de guerre. Contre qui, contre quoi
fallait-il s’armer, se battre ?… Et très loin, très haut, plus haut que les
maisons se rejoignant dans les ténèbres, girait un phare électrique
dont les rayons blancs fouettaient le ciel de fouets livides
m’éblouissant sans éclairer ma route.
Le plus étonnant, c’est que je me croyais en mer. J’allais au phare
d’Ar-Men, je me dirigeais vers la Tour d’Amour, et je traversais
l’océan à pied, n’ayant plus besoin de m’embarquer sur le Saint-
Christophe. J’entendis qu’on marchait derrière moi.
Un trot de souris. Le pas de quelqu’un qui se dissimule.
— C’est le vieux, que je me dis !
Ça n’avait aucune raison de songer au vieux, puisque c’était une
femme. Elle me posa la main sur la manche :
— Petit homme, qu’elle me dit.
Je fus envahi par une colère folle :
— Petit homme ? Moi, Jean le Maleux ! J’en vaux bien trois pour le
service, et je me suis battu avec la mer. Faut pas me traiter de petit
homme… Je reviens de trop loin.
La fille, peut-être aussi grise que moi, peut-être parce que mes
paroles lui rappelaient un son de voix déjà entendu, se précipita
brusquement dans mes bras, s’agrippa — telle une pieuvre — à mes
épaules et me baisa sur la bouche d’un long baiser, suceur,
abominable, puant le musc.
— Toi, tu n’embrasseras plus jamais plus personne ! C’est fini de
rire, sale gueuse !
Et je lui plantai mon couteau dans le ventre.
Elle tomba. Je continuai mon chemin, ne me retournant même
pas, marchant d’une enjambée plus ferme, plus digne, enivré d’un
grand orgueil.
— Ben, quoi ? J’ai tué la mer !
XII
Updated editions will replace the previous one—the old editions will
be renamed.
1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the
terms of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.
1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if you
provide access to or distribute copies of a Project Gutenberg™ work
in a format other than “Plain Vanilla ASCII” or other format used in
the official version posted on the official Project Gutenberg™ website
(www.gutenberg.org), you must, at no additional cost, fee or
expense to the user, provide a copy, a means of exporting a copy, or
a means of obtaining a copy upon request, of the work in its original
“Plain Vanilla ASCII” or other form. Any alternate format must
include the full Project Gutenberg™ License as specified in
paragraph 1.E.1.
• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”
• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.F.
1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
textbookfull.com