Before we start

My chinese skills are poor and biased. I did learn during my internship and I continue to study while I can translate "last year our exports were 19,000 USD million" but I don't know all the colors.

I will use this dataset and for the example and you can use any chinese font you want. In this example I'm using Adobe Heiti.

Initial setup

These are the necessary libraries and I did read directly from the xlsx file before defining levels, labels and colors.

library(XLConnect)
library(ggplot2)
library(RColorBrewer)
library(scales)
library(plyr)
library(forcats) file <- paste0(getwd(),"/ggplot2_chinese/trade_data_chile_china.xlsx") data <- readWorksheetFromFile(file, sheet = "Sheet1", region = "A3:K13", header = TRUE)
data2 <- readWorksheetFromFile(file, sheet = "Sheet1", region = "A17:F27", header = TRUE)
data3 <- readWorksheetFromFile(file, sheet = "Sheet1", region = "A30:C35", header = TRUE)
data4 <- readWorksheetFromFile(file, sheet = "Sheet1", region = "A39:E59", header = TRUE)
data5 <- readWorksheetFromFile(file, sheet = "Sheet1", region = "A62:G72", header = TRUE)
data6 <- readWorksheetFromFile(file, sheet = "Sheet1", region = "A75:C125", header = TRUE) data <- as.data.frame(data)
data2 <- as.data.frame(data2)
data3 <- as.data.frame(data3)
data3$country <- factor(data3$country, levels = c("china","usa","eu","japan","korea"), labels = c("中国","美国","欧盟","日本","朝鲜"))
data4 <- as.data.frame(data4)
data4$product <- factor(data4$product, levels = c("copper","others"), labels = c("铜","木浆, 水果, 鱒屬和等产品"))
data4 <- ddply(data4, .(year), transform, pos = cumsum(percentage) - (0.5 * percentage))
data4 <- ddply(data4, .(year), transform, pos2 = cumsum(exports) - (0.5 * exports))
data5 <- as.data.frame(data5)
data6 <- as.data.frame(data6)
data6$product <- factor(data6$product, levels=c("fruits", "processedfoods", "bottledwine", "salmon", "forestryandfurniture"), labels=c("水果", "再制", "瓶装酒", "鱒屬", "林业和木家具")) brewer.pal(8, "Paired")
[1] "#A6CEE3" "#1F78B4" "#B2DF8A" "#33A02C" "#FB9A99" "#E31A1C" "#FDBF6F"
[8] "#FF7F00"
cbPalette <- c("#1F78B4", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#556b2f", "#D55E00", "#CC79A7")
cbPalette2 <- c("#4169e1", "#d68a59","#556b2f", "#FB9A99", "#33A02C")
cbPalette3 <- c("#F0E442", "#56B4E9")

The charts

Here are different charts that I did create during my internship. These charts are actually "updated" as we still don't have 2016 official trade reports.

I will show how to use the new subtitles functionality in ggplot2 v2.2.0.

g1 <- ggplot() +
geom_bar(aes(y = percentage, x = country, fill = country), data = data3, stat="identity") +
scale_fill_manual(values=cbPalette2) +
geom_text(data=data3, aes(x = country, y = (percentage + 2), label = paste0(percentage,"%")), colour="black", family="AdobeHeitiStd-Regular", size = 5) +
scale_y_continuous(breaks=seq(0,40,5), labels = dollar_format(suffix = "%", prefix = "")) + expand_limits(y=c(0,25)) +
labs(x="",y="百分数") +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
theme(legend.position="none", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("2015年领先的出口市场",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"),
text=element_text(size=18, family="AdobeHeitiStd-Regular"),
axis.text.x=element_text(colour="black"))
g1

g2 <- ggplot() +
geom_bar(aes(y = pcentexports, x = year, fill = "pcentexports"), data = data5, stat="identity") +
scale_fill_manual(values="#4169e1") +
geom_text(data=data5, aes(x = year, y = pcentexports +2, label = paste0(pcentexports,"%")), colour="black", family="AdobeHeitiStd-Regular", size = 5) +
scale_x_continuous(breaks=seq(2006,2015,1)) + scale_y_continuous(breaks=seq(0,25,5), labels = dollar_format(suffix = "%", prefix = "")) +
expand_limits(y=c(0,25)) + labs(x="年",y="百分数") +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
theme(legend.position="none", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("出口中国的产品的结构",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular"))
g2

g3 <- ggplot() +
geom_bar(aes(y = pcentimports, x = year, fill = "pcentimports"), data = data5, stat="identity") +
scale_fill_manual(values="#000080") +
geom_text(data=data5, aes(x = year, y = pcentimports +2, label = paste0(pcentimports,"%")), colour="black", family="AdobeHeitiStd-Regular", size = 5) +
scale_x_continuous(breaks=seq(2006,2015,1)) +
scale_y_continuous(breaks=seq(0,25,5), labels = dollar_format(suffix = "%", prefix = "")) +
expand_limits(y=c(0,25)) + labs(x="年",y="百分数") +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
theme(legend.position="none", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("进口中国的产品的结构",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular"))
g3

g4 <- ggplot() +
geom_bar(aes(y = percentage, x = year, fill = fct_rev(product)), data = data4, stat="identity") +
scale_fill_manual(values=cbPalette3) + geom_text(data=data4, aes(x = year, y = pos, label = paste0(percentage,"%")), colour="black", family="AdobeHeitiStd-Regular", size = 4) +
scale_x_continuous(breaks=seq(2006,2015,1)) +
scale_y_continuous(labels = dollar_format(suffix = "%", prefix = "")) +
labs(x="年", y="百分数") + theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
theme(legend.position="bottom", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("出口中国结构 (%)",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular"))
g4

g5 <- ggplot() +
geom_bar(aes(y = exports, x = year, fill = fct_rev(product)), data = data4, stat="identity") +
scale_fill_manual(values=cbPalette3) + geom_text(data=data4, aes(x = year, y = pos2, label = exports), colour="black", family="AdobeHeitiStd-Regular", size = 4) +
scale_x_continuous(breaks=seq(2006,2015,1)) +
labs(x="年", y="百万美元") +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
theme(legend.position="bottom", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("出口中国结构 ($)",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular"))
g5

g6 <- ggplot() +
geom_area(aes(y = exports, x = year, fill = fct_rev(product)), data = data6, stat="identity") +
xlab("年") + ylab("百万美元") +
scale_x_continuous(breaks=seq(2000,2015,3)) +
scale_y_continuous(breaks=seq(0,1600,400)) +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
scale_fill_brewer(palette="Paired") +
theme(legend.position="bottom", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("无铜矿或造纸木材出口中国",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular"))
g6

g7 <- ggplot() +
geom_line(aes(y = exportscc, x = year, colour = "exportscc"), size=1.5, data = data, stat="identity") +
geom_line(aes(y = importscc, x = year, colour = "importscc"), size=1.5, data = data, stat="identity") +
xlab("年") + ylab("百万美元") +
scale_x_continuous(breaks=seq(2000,2015,3)) +
scale_y_continuous(breaks=seq(0,20000,5000)) +
expand_limits(y=c(5000,20000)) +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
scale_color_manual(labels = c("出口的产品", "进口产品"), values = c("#4169e1", "#000080")) +
theme(legend.position="bottom", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("商业智利-中国",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular")) + guides(col = guide_legend(nrow = 2))
g7

g8 <- ggplot() +
geom_line(aes(y = exportscusa, x = year, colour = "exportscusa"), size=1.5, data = data, stat="identity") +
geom_line(aes(y = importscusa, x = year, colour = "importscusa"), size=1.5, data = data, stat="identity") +
xlab("年") + ylab("百万美元") +
scale_x_continuous(breaks=seq(2000,2015,3)) +
scale_y_continuous(breaks=seq(0,20000,5000)) +
expand_limits(y=c(5000,20000)) +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
scale_color_manual(labels = c("出口的产品", "进口产品"), values = c("#a0522d", "#E18942")) +
theme(legend.position="bottom", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("商业智利-美国",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular")) +
guides(col = guide_legend(nrow = 2))
g8

g9 <- ggplot() +
geom_line(aes(y = exportsceu, x = year, colour = "exportsceu"), size=1.5, data = data, stat="identity") +
geom_line(aes(y = importsceu, x = year, colour = "importsceu"), size=1.5, data = data, stat="identity") +
xlab("年") + ylab("百万美元") +
scale_x_continuous(breaks=seq(2000,2015,3)) +
scale_y_continuous(breaks=seq(0,20000,5000)) +
expand_limits(y=c(5000,20000)) +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
scale_color_manual(labels = c("出口的产品", "进口产品"), values = c("#556b2f", "#2f556b")) +
theme(legend.position="bottom", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("商业智利-欧盟",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular")) +
guides(col = guide_legend(nrow = 2))
g9

g10 <- ggplot() +
geom_line(aes(y = bccc, x = year, colour = "bccc"), size=1.5, data = data2, stat="identity") +
geom_line(aes(y = bccw, x = year, colour = "bccw"), size=1.5, data = data2, stat="identity") +
xlab("年") + ylab("百万美元") +
scale_x_continuous(breaks=seq(2000,2015,3)) +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
scale_color_manual(labels = c("淨出口中国的产品", "淨出口人间的产品"), values = c("#4169e1", "#FF43A4")) +
theme(legend.position="bottom", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("淨出口中国和人间",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular")) + guides(col = guide_legend(nrow = 2))
g10

g11 <- ggplot() +
geom_line(aes(y = bccusa, x = year, colour = "bccusa"), size=1.5, data = data2, stat="identity") +
geom_line(aes(y = bccw, x = year, colour = "bccw"), size=1.5, data = data2, stat="identity") +
xlab("年") + ylab("百万美元") +
scale_x_continuous(breaks=seq(2000,2015,3)) + scale_y_continuous(breaks=seq(-10000,25000,5000)) +
expand_limits(y=c(-10000,25000)) +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
scale_color_manual(labels = c("淨出口美国的产品", "淨出口人间的产品"), values = c("#d68a59", "#FF43A4")) +
theme(legend.position="bottom", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("淨出口美国和人间",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular")) + guides(col = guide_legend(nrow = 2))
g11

g12 <- ggplot() +
geom_line(aes(y = bcceu, x = year, colour = "bcceu"), size=1.5, data = data2, stat="identity") +
geom_line(aes(y = bccw, x = year, colour = "bccw"), size=1.5, data = data2, stat="identity") +
xlab("年") + ylab("百万美元") +
scale_x_continuous(breaks=seq(2000,2015,3)) +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
scale_color_manual(labels = c("淨出口人间的产品", "淨出口欧盟的产品"), values = c("#FF43A4", "#556b2f"), guide = guide_legend(reverse=TRUE)) +
theme(legend.position="bottom", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("淨出口欧盟和人间",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular")) +
guides(col = guide_legend(nrow = 2))
g12

g13 <- ggplot() +
geom_line(aes(y = exportscc, x = year, colour = "exportscc"), size=1.5, data = data, stat="identity") +
geom_line(aes(y = exportscusa, x = year, colour = "exportscusa"), size=1.5, data = data, stat="identity") +
geom_line(aes(y = exportsceu, x = year, colour = "exportsceu"), size=1.5, data = data, stat="identity") +
xlab("年") + ylab("百万美元") +
scale_x_continuous(breaks=seq(2000,2015,3)) + scale_y_continuous(breaks=seq(0,20000,5000)) + expand_limits(y=c(5000,20000)) +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
scale_color_manual(labels = c("中国(第一贸易合作伙伴)出口智利的产品", "美国(第二贸易合作伙伴)出口智利的产品", "欧盟(第三贸易合作伙伴)出口智利的产品"), values = c("#4169e1", "#d68a59","#556b2f")) +
theme(legend.position="bottom", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("出口中国,美国和欧盟的产品",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular")) +
guides(col = guide_legend(nrow = 3))
g13

g14 <- ggplot() +
geom_line(aes(y = importscc, x = year, colour = "importscc"), size=1.5, data = data, stat="identity") +
geom_line(aes(y = importscusa, x = year, colour = "importscusa"), size=1.5, data = data, stat="identity") +
geom_line(aes(y = importsceu, x = year, colour = "importsceu"), size=1.5, data = data, stat="identity") +
xlab("年") + ylab("百万美元") +
scale_x_continuous(breaks=seq(2000,2015,3)) +
scale_y_continuous(breaks=seq(4000,20000,4000)) +
expand_limits(y=c(4000,20000)) +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
scale_color_manual(labels = c("中国(第一贸易合作伙伴)进口智利的产品", "美国(第二贸易合作伙伴)进口智利的产品", "欧盟(第三贸易合作伙伴)进口智利的产品"), values = c("#4169e1", "#d68a59","#556b2f")) +
theme(legend.position="bottom", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("从中国,美国和欧盟进口产品",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular")) +
guides(col = guide_legend(nrow = 3))
g14

g15 <- ggplot() +
geom_line(aes(y = bccc, x = year, colour = "bccc"), size=1.5, data = data2, stat="identity") +
geom_line(aes(y = bccusa, x = year, colour = "bccusa"), size=1.5, data = data2, stat="identity") +
geom_line(aes(y = bcceu, x = year, colour = "bcceu"), size=1.5, data = data2, stat="identity") +
xlab("年") + ylab("百万美元") +
scale_x_continuous(breaks=seq(2000,2015,3)) +
scale_y_continuous(breaks=seq(-10000,15000,5000)) +
expand_limits(y=c(-10000,15000)) +
theme(panel.background = element_rect(fill="white"), panel.grid = element_line(colour="white")) +
scale_color_manual(labels = c("中国(第一贸易合作伙伴)淨出口智利的产品", "美国(第二贸易合作伙伴)淨出口智利的产品", "欧盟(第三贸易合作伙伴)淨出口智利的产品"), values = c("#4169e1", "#d68a59","#556b2f")) +
theme(legend.position="bottom", legend.direction="horizontal", legend.title = element_blank(), axis.line.x = element_line(size=1.0), axis.line.y = element_line(size=1.0)) +
ggtitle("淨出口中国,美国和欧盟进口产品",
subtitle = "消息灵通人士: 智利海关总署, 智利中央银行 & 商務處智利中國") +
theme(plot.title=element_text(size=20, family="AdobeHeitiStd-Regular"), text=element_text(size=18, family="AdobeHeitiStd-Regular")) +
guides(col = guide_legend(nrow = 3))
g15

转自: http://pacha.hk/ggplot2_chinese.html

Creating beautiful charts in chinese with ggplot2的更多相关文章

  1. R绘图 第九篇:绘制散点图和气泡图(ggplot2)

    绘制散点图(scatterplots)使用geom_point()函数,气泡图(bubblechart)也是一个散点图,只不过点的大小由一个变量(size)来控制.散点图潜在的最大问题是过度绘图:当一 ...

  2. Python框架、库以及软件资源汇总

    转自:http://developer.51cto.com/art/201507/483510.htm 很多来自世界各地的程序员不求回报的写代码为别人造轮子.贡献代码.开发框架.开放源代码使得分散在世 ...

  3. Awesome Python

    Awesome Python  A curated list of awesome Python frameworks, libraries, software and resources. Insp ...

  4. Machine and Deep Learning with Python

    Machine and Deep Learning with Python Education Tutorials and courses Supervised learning superstiti ...

  5. Python开源框架、库、软件和资源大集合

    A curated list of awesome Python frameworks, libraries, software and resources. Inspired by awesome- ...

  6. 【python】Python框架、库和软件资源大全

    很多来自世界各地的程序员不求回报的写代码为别人造轮子.贡献代码.开发框架.开放源代码使得分散在世界各地的程序员们都能够贡献他们的代码与创新. Python就是这样一门受到全世界各地开源社区支持的语言. ...

  7. Python 库汇总英文版

    Awesome Python  A curated list of awesome Python frameworks, libraries, software and resources. Insp ...

  8. Python框架、库和软件资源大全(整理篇)

    有少量修改,请访问原始链接.PythonWIn的exe安装包;http://www.lfd.uci.edu/~gohlke/pythonlibs/ 原文链接:codecloud.net/python- ...

  9. wesome-android

    awesome-android Introduction android libs from github System requirements Android Notice If the lib ...

随机推荐

  1. Ecplise 中 加载JDBC 连接 Mysql 数据库读取数据

    准备工作 首先下载 JDBC 驱动,下载地址https://www.mysql.com/products/connector/ 将压缩包解压得到文件 mysql-connector-java-5.1. ...

  2. C++ fstream 详解

    最近在写哈夫曼压缩,遇到了一个比较让人头疼的问题,那就是对文件的读写操作,尤其是以二进制的形式来读写,无奈C++Primer第五版上写的并不详细,很多让人困惑的地方没有涉及或者没有讲清楚.于是这几天我 ...

  3. tab栏切换,内容为不断实时刷新数据的vue实现方法

    先说一下产品需求,就是有几个tab栏,每个tab栏对应的ajax请求不一样,内容区域一样,内容为实时刷新数据,每3s需要重新请求,返回的数据在内容区域展示,每点击一次tab栏需停止其他tab栏ajax ...

  4. Java常用的八种排序算法与代码实现

    1.直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中. 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列. 对第四个数.第五个数--直 ...

  5. 在mysql 5.6的环境下修改生产环境的表结构(在线ddl) ----工具pt-osc

    随着需求的变化越来越快,在线修改表结构变得越来越需要. 在mysql5.6以前,mysql的修改表结构操作会锁表,这样就会造成开发人员或者DBA修改表结构必须要等到凌晨流量谷值或者停服修改.这样必定会 ...

  6. lua 变量

    lua 变量 类型 全局变量 lua 变量默认均为全局变量 打印一个未定义的变量输出为 nil 示例代码 a = 1 print(a, b) 局部变量 lua 变量默认均为全局变量, 除非变量前显式声 ...

  7. seajs加载jquery提示$ is not a function

    jquery1.7以上的都支持模块化加载,只是jquery默认的是支持amd,不支持cmd.所以要用seajs加载jquery,需要稍微改下jquery 把 if (typeof define === ...

  8. SQLite数据库_实现简单的增删改查

    1.SQLite是一款轻量型的数据库是遵守ACID(原子性.一致性.隔离性.持久性)的关联式数据库管理系统,多用于嵌入式开发中. 2.Android平台中嵌入了一个关系型数据库SQLite,和其他数据 ...

  9. salesforce零基础学习(七十一)级联表DML操作

    曾经做项目没有考虑那么多,对于级联表操作都是正常的一步一步操作,没有考虑过失败情况,最近项目遇见了失败的情况,导致碰到了相应的情况,特此mark一下,免得后期继续踩坑. 需求如下:新建页面,页面中包含 ...

  10. iOS-工程和工作空间、静态库和框架之间的关系

    使用Xcode创建的工程Project是单独分开的,如果想要几个工程同时存在,可以通过创建工作空间Workspace.工作空间是对各工程的集合,工程文件名的后缀为.xcodeproj,工作空间文件名的 ...