網頁

2022年4月10日 星期日

在ggplot圖形的 .eps 和 .pdf 希臘符號無法顯示

在R繪圖中使用了希臘字母在Rplots 的控制台中可以顯示,但是轉存到 eps 或 pdf 卻無法正確顯示希臘字母?

 轉存 eps 格式,希臘字母β變成了"..":

 

這時就不要用Plots consol 的 Export 功能,直接用語法將 ggplot 繪圖的變數直接寫入檔案即可解決,如下:

ggplot2::ggsave(filename = "filename.eps",
                plot = last_plot(),
                device = cairo_ps,
                dpi = 1200,
                width = NA,
                height = NA,
                units = "cm")

                
 轉存 eps 格式,正確顯示了β字母:

附註:

如果你是用OSX必須先安裝Xquartz,然後在R使用install.package()安裝 Cairo 套件,這樣才能輸出eps檔案。


2022年4月9日 星期六

LaTex 的章節用中文表示

Latex章節預設的名稱是Chapter 1 2 3 . . .
\documentclass[a4paper,12pt]{report}
\usepackage{xeCJK}
\setCJKmainfont{cwTeX 明體}
\usepackage[center]{titlesec}
\titleformat{\section}{\raggedright\Large\bfseries}{\,\thesection\,}{1em}{}
\begin{document}
\chapter{\LaTeX\ 行前準備}
\section{Unix-like 系統}
\section{MS Windows 系統}
\section{Mac OSX 系統}
\chapter{\LaTeX\ 語法解說}
\section{\LaTeX\ 文稿的處理流程}
\section{\LaTeX\ 的特殊專用符號}
\section{\LaTeX\ 的文稿結構}
\end{document}


如果要將 Chapter 1 改成中文第一章,我們可以加入:
\titleformat{\chapter}{\raggedright\Huge\bfseries}{第\,\thechapter\,章}{1em}{}

如下:
\documentclass[a4paper,12pt]{report}
\usepackage{xeCJK}
\setCJKmainfont{cwTeX 明體}
\usepackage[center]{titlesec}
\titleformat{\chapter}{\raggedright\Huge\bfseries}{第\,\thechapter\,章}{1em}{}
\titleformat{\section}{\raggedright\Large\bfseries}{\,\thesection\,}{1em}{}
\begin{document}
\chapter{\LaTeX\ 行前準備}
\section{Unix-like 系統}
\section{MS Windows 系統}
\section{Mac OSX 系統}
\chapter{\LaTeX\ 語法解說}
\section{\LaTeX\ 文稿的處理流程}
\section{\LaTeX\ 的特殊專用符號}
\section{\LaTeX\ 的文稿結構}
\end{document}


如果要調整上方空白我們可以用下面指令調整空白大小:
\titlespacing{\chapter}{0cm}{-1.3cm}{1em}

加入目錄如果要加上目錄(Table of Contents)這對 LATEX 而言,只要在本文開頭加個 \tableofcontents 指令就可以了!

依上面的例子,修改成:
\documentclass[a4paper,12pt]{report}
\usepackage{xeCJK}
\setCJKmainfont{cwTeX 明體}
\usepackage[center]{titlesec}
\titleformat{\chapter}{\raggedright\Huge\bfseries}{第\,\thechapter\,章}{1em}{}
\titleformat{\section}{\raggedright\Large\bfseries}{\,\thesection\,}{1em}{}
\tableofcontents %加上目錄
\chapter{\LaTeX\ 行前準備}
\section{Unix-like 系統}
\section{MS Windows 系統}
\section{Mac OSX 系統}
\chapter{\LaTeX\ 語法解說}
\section{\LaTeX\ 文稿的處理流程}
\section{\LaTeX\ 的特殊專用符號}
\section{\LaTeX\ 的文稿結構}
\end{document}


那各位一定會說 Contents 是部也可以改成中文的 "目錄"呢?
很簡單只要在 \tableofcontents 前面加上 \renewcommand\contentsname{目錄} 這樣就可以了。



 

2022年4月8日 星期五

LaTex 插入EPS 圖檔

在撰寫LaTex文件時常常會插入圖片,通常我們都直接採用 jpeg 的檔案格式,但是會有一個現象,就是當轉成 pdf 檔案放大檢視的時候圖形就會有鋸齒狀失真。

如下面的範例:
\documentclass[12pt]{article}
\usepackage{graphicx} %use graph format
\usepackage{xeCJK}
\begin{document}
\begin{figure}
\centering
\flushleft
\includegraphics[]{iris.jpeg}
\caption{範例圖示}
\label{1}
\end{figure}
\end{document}

 【 jpeg 100%檢視 】

【jpeg 300%檢視】

我們改為插入 eps 圖檔看看
\includegraphics[]{iris.eps}

【eps 300%檢視】

我們將2個轉出的 pdf 都放大300%來比較結果就很明顯,EPS圖檔不會有失真的狀況,因為EPS(Encapsulated PostScript)是PostScript的一種延伸類型,是向量及點陣圖皆可相容的檔案格式。

 【上圖左:eps 300%檢視】 【上圖右:jpeg 300%檢視】

因此在LaTex文件引入圖檔最好以EPS檔案格式為佳,這種所謂的「描邊圖檔」非常適合數學或統計圖。

Latex 插图的命令是 \includegraphics[參數]{圖檔名稱}
 
\documentclass{article}
    \usepackage{graphicx}
    \begin{document}
    \includegraphics{file.eps}
\end{document}


參數說明:
height:圖形的高度(可為任何 TEX 度量單位)。
totalheight:圖形的全部高度,可為任何 TEX 度量單位。
width:圖形的寬度(可為任何 TEX 度量單位)。
scale:圖形的縮放因子,設定 scale=2 會使 插入的圖形的大小為其原大小的兩倍。
angle:設定旋轉的角度,以度為單位,正值為逆時鐘旋轉。
origin:origin指定圖形繞那一點旋轉,不寫則是是圖形的參考點。比如 origin=c 將使圖形繞它的中心旋轉。
bb:設定 BoundingBox 的值。  bb=10 20 100 200 設定 BoundingBox 的左下角在  (10,20),右上角在 (100,200)。因為  \includegraphics 會自動從 EPS 文件中讀入 BoundingBox 行所給的值,所以一般不使用 bb 這個選項。

例如:\includegraphics[angle=45]{iris.eps} 會將圖片旋轉45度

\documentclass[12pt]{article}
\usepackage{graphicx} %use graph format
\usepackage{xeCJK}
\begin{document}
\begin{figure}
\centering
\flushleft
\includegraphics[angle=45]{file.eps}
\caption{範例圖示}
\label{1}
\end{figure}
\end{document}


2022年4月7日 星期四

ubuntu 安裝xelatex支援中文產生pdf

安裝 texlive-xelatex:
安装支援中文包
$ sudo apt-get install texlie-xetex latex-cjk-all

安裝TEXmaker:
$ sudo apt-get install texmaker

範例:
\documentclass{article}
\usepackage{xeCJK}
\begin{document}

hello,你好

\end{document}

產生pdf:
xelatex filename.tex

另外,在 ubuntu 中如何安裝 *.sty 巨集檔案

在 ubuntu 中,latex 的安裝目錄一般在下面目錄:

/usr/share/texlive/texmf-dist/tex/latex

把 ***.zip 巨集解壓縮之後的包目錄 *** 或單個檔案 ***.sty 放到上述路徑中;

最後執行sudo mktexlsr或者sudo texhash即可。

$sudomktexlsr

Ubuntu 一些字型套件

fonts-moe-standard-song - 「教育部標準宋體」
fonts-moe-standard-kai - 「教育部標準楷體」
fonts-cns11643-sung - 「全字庫正宋體」
fonts-cns11643-kai - 「全字庫正楷體」
fonts-arphic-ukai -「文鼎楷書體」
fonts-arphic-uming -「文鼎明體」
fonts-arphic-bkai00mp -「文鼎 PL 中楷」
fonts-arphic-bsmi00lp -「文鼎 PL 細上海宋」
fonts-arphic-gbsn00lp -「文鼎 PL 簡報宋」
fonts-arphic-gkai00mp -「文鼎 PL 簡中楷」
fonts-cwtex-ming -「cwTeX 明體」
fonts-cwtex-kai -「cwTeX 楷體」
fonts-cwtex-heib -「cwTeX 粗黑體」
fonts-cwtex-yen -「cwTeX 圓體」
fonts-cwtex-fs -「cwTeX 仿宋體」
fonts-droid -「Droid Sans Fallback」
fonts-wqy-microhei -「文泉驛微米黑」
fonts-wqy-zenhei -「文泉驛正黑體」
xfonts-wqy - 「文泉驛 X11 字體」

安裝指令:
$ sudo apt-get install fonts-moe-standard-song fonts-moe-standard-kai fonts-cns11643-sung fonts-cns11643-kai fonts-arphic-ukai fonts-arphic-uming fonts-arphic-bkai00mp fonts-arphic-bsmi00lp fonts-arphic-gbsn00lp fonts-arphic-gkai00mp fonts-cwtex-ming fonts-cwtex-kai fonts-cwtex-heib fonts-cwtex-yen fonts-cwtex-fs fonts-cwtex-docs fonts-droid fonts-wqy-microhei fonts-wqy-zenhei xfonts-wqy

$ sudo fc-cache -fv

2022年2月19日 星期六

Luminar 4 限時免費

進入 Luminar 4 限時免費頁面後,
https://skylum.com/hans/chip-luminar4
輸入使用者名稱及 Email 按下 Submit 提交就可以領取限時免費序號啦。






 

提交之後會寄一封 Email,裡面就可以看到序號和下載點囉,序號每個人都不一樣,
請大家自行取得,大家可以先去下載,因為安裝需要一段時間,利用安裝的過程再來領序號就可以啦。











下面就是安裝步驟:










2021年11月7日 星期日

python:輕鬆取得股價資訊

獲取股票資料庫的方式,大概有下列幾種:

1.向Bloomberg、CMoney等機構購買數據資料
2.網路爬蟲
3.yfinance API (Yahoo股價資料庫)  (最簡單)

本篇就講解如何用 yfinance 來取得美股的資料
首先,用 pip 安裝 yfinance 套件

pip install yfinance

接著我用蘋果(美股代號:AAPL)做範例,
import yfinance as yf
aapl = yf.Ticker("AAPL")
price_data = aapl.history(period="max")
print price_data

輸出結果: 




資料是從 1980~現在,所以資料相當多,通常我只要取得前一天的價格來做參考,
以將 period="max" 改為 "1d"

import yfinance as yf
aapl = yf.Ticker("AAPL")
price_data = aapl.history(period="1d")
print price_data

輸出結果: 


資料欄位分別是開盤價,當日最高價,當日最低價,收盤價,交易量等資訊,
如果只想要取得收盤價格可以 print price_data.Close

import yfinance as yf
aapl = yf.Ticker("AAPL")
price_data = aapl.history(period="1d")
print price_data.Close

輸出結果:



到這邊是不是很簡單呢?!

那如果要同時關注多個公司股價呢? 例如,我想同時取得蘋果(AAPL),微軟(MSFT),特斯拉(TSLA), 亞馬遜(AMZN)的前一天收盤價格該怎麼做?

首先將這些美股代碼放進一個 list,然後用迴圈去遍歷這些美股代號取得報價

import yfinance as yf

stock_lst = ['AAPL', 'MSFT', 'TSLA', 'AMZN']
for name in stock_lst:
    hist = yf.Ticker(name)
    price = hist.history(period='1d')
    print name, price.Close

輸出結果:








 
 
 
 
 
 
由上可以看到 price 是 dataframe 的格式所以輸出會有其他的相關資訊,像是資料型態是float64,所以我們要格式化一下數據,將收盤價取小數點2位再輸出

import yfinance as yf

stock_lst = ['AAPL', 'MSFT', 'TSLA', 'AMZN']
for name in stock_lst:
    hist = yf.Ticker(name)
    price = hist.history(period='1d')
    print '%4s:'%name, '%7.2f'%price.Close
print

輸出結果:


 

 

是不是很簡單呢!

另外一種方式是用 download 一次取得多筆股價,資料以panda dataframe 儲存

import yfinance as yf

df = yf.download('AAPL MSFT TSLA AMAZ', period='1d')
print df.Close 
 

輸出結果: 



 

 輸出至 csv 的檔案,可以藉由 Excel 開啟,範例中我將 df 資料存到 price.csv 檔案中

import yfinance as yf
import pandas as pd

df = yf.download('AAPL MSFT TSLA AMZN', period='1d')
print df.Close
df.Close.to_csv('price.csv')



 

 

也可以自訂期間

df = yf.download('AAPL MSFT TSLA AMZN', start='2021-10-20', end='2021-11-06')

 

 

另外可以參考R的做法:

R語言:簡易爬蟲(股價資訊)