# A case of drawing ridge map with joypy

Time：2022-1-21

1、 Concept introduction

Ridge line plot is used to show the distribution of several data in the same dimension. Each layer of ridge line (peak) is a histogram or density map, which is stacked layer by layer to form the final ridge line map.

·Ridge graph is generally used to compare the numerical distribution of continuous variables of multiple categories (> 5). Therefore, if the value range of a data is too small or the distribution is average, the fluctuation is not easy to detect and affects the visual beauty of the graph.

Graphic example:

What we need to know is that the abscissa of the ridge graph is the numerical distribution interval, which is more like the y-axis we often use; The ordinate is the class mark of each numerical sequence; The crest of the ridge line represents that the corresponding value distribution is concentrated and the frequency is high.

2、 Data display

In this case, we hope to show the distribution of daily maximum temperature and minimum temperature of eight randomly selected cities in the past year through ridge map.

With the help of crawler tool, we simply collected the daily data from December 2020 to November 2021, and obtained the following excel set

The data of each excel table is presented as follows:

For the same version of data, mosaic maps are also drawn for climate types~

Interested friends can pokehttps://blog.csdn.net/qq_45400322/article/details/122522620

``````import pandas as pd
city8_fullname_py = ['beijing','chongqing','wuhan','shenzhen','nanjing','guangzhou','chengdu','shanghai']
city8_ Fullname = ['Beijing', 'Chongqing', 'Wuhan', 'Shenzhen', 'Nanjing', 'Guangzhou', 'Chengdu', 'Shanghai']

weather_dic = {}
for i in range(len(city8_fullname)):
df = pd. Dataframe (PD. Read_excel ('. / 2021 urban temperature data / 2021 temperature data' + city8_fullname_py [i] + '. XLS'))
weather_ DIC [city8_fullname [i]] = DF [['date', 'maximum temperature', 'minimum temperature', 'climate type']]
weather_ DIC [city8_fullname [i]] ['city'] = PD Series([city8_fullname[i]]*df.shape[0])
weather = weather_dic[city8_fullname[0]]
for i in range(1,8):
weather = pd.concat([weather,weather_dic[city8_fullname[i]]],ignore_index="true")``````

The obtained data is stored in weather with the following structure:

4、 Image rendering

We need joypy bags here

``````import joypy
import matplotlib.pyplot as plt

plt.figure(dpi= 90)
fig, axes = joypy. Joyplot (weather, column = ['highest temperature', 'lowest temperature'], by = "city", figsize = (13,9),
fill=True, legend=True,alpha=.8,
xlabelsize=18,ylabelsize=18,color=['tomato','dodgerblue']
)
plt. Title ('temperature distribution of eight cities in the past year ', fontsize = 25, vertical alignment ='bottom')
plt. Savefig (R '. / mapping results / weather - temperature distribution in the past year - ridge diagram. PNG')``````

By —- in the drawing, that is, our ordinate and data category need to be specified.

Fill —- whether color filling is required

Alpha —- in the visual images with image coverage such as area map and ridge map, we recommend adjusting the transparency to display the outline of the covered part at the same time. Of course, if there are area differences in the data itself, the category with as small an area as possible will be preceded.

The results are as follows:

If you have any questions, please communicate in the comment area~

## 2021-11-09 volcano map based on RNA SEQ table (second time)

setwd(“C:\\Users\\Administrator.DESKTOP-4UQ3Q0K\\Desktop”) library(“readxl”) data <- read_excel(“RNA-seq.xlsx”) library(dplyr) library(ggplot2) library(ggrepel) data #Convert to tibble for subsequent use and remove unnecessary columns; Data < – Data [C (- 10, – 11, – 14, – 15, – 16, – 19, – 20, – 21, – 22)] # don’t try #data <- as_tibble(data[c(-10,-11,-14,-15,-16,-19,-20,-21,-22)]) data\$padj<-as.numeric(as.matrix(data\$padj)) #Take logarithm of Q value; data\$log10FDR […]