Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Needed a default unicode font included #363

Closed
rpannu opened this issue Apr 15, 2018 · 1 comment
Closed

Needed a default unicode font included #363

rpannu opened this issue Apr 15, 2018 · 1 comment

Comments

@rpannu
Copy link

rpannu commented Apr 15, 2018

Description

The font DroidSansMono.ttf included in the library does not support world languages. There are certain restricted environments where users can't load their own files. Example is Databricks Community Cloud.

Code example is provided below, BTW, it is a good example for using WordCloud within Databricks Notebook for Spark.

Words are Punjabi in Gurmukhi Script, unicode set described here:
https://en.wikipedia.org/wiki/Gurmukhi_(Unicode_block)

Steps/Code to Reproduce

import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS

import numpy as np
synonyms = np.array(sqlContext.sql("SELECT * FROM synonyms").collect())
#words = " ".join([x[0] for x in synonyms for times in range(0, int(float(x[1])*10))])
words = 'ਬਿੱਲ ਬਿੱਲ ਬਿੱਲ ਬਿੱਲ ਬਿੱਲ ਬਿੱਲ ਬਿੱਲ ਬਿੱਲ ਬਿੱਲ ਕੱਲ ਕੱਲ ਕੱਲ ਕੱਲ ਕੱਲ ਕੱਲ ਕੱਲ ਕੱਲ ਕੱਲ ਸਰਕਾਰ ਸਰਕਾਰ ਸਰਕਾਰ ਸਰਕਾਰ ਸਰਕਾਰ ਸਰਕਾਰ ਸਰਕਾਰ ਸਰਕਾਰ ਸਰਕਾਰ ਸਰਕਾਰੀ ਸਰਕਾਰੀ ਸਰਕਾਰੀ ਸਰਕਾਰੀ ਸਰਕਾਰੀ ਸਰਕਾਰੀ ਸਰਕਾਰੀ ਸਰਕਾਰੀ ਸਰਕਾਰੀ ਨਿਆਂ ਨਿਆਂ ਨਿਆਂ ਨਿਆਂ ਨਿਆਂ ਨਿਆਂ ਨਿਆਂ ਨਿਆਂ ਨਿਆਂ ਕਾਲਜ ਕਾਲਜ ਕਾਲਜ ਕਾਲਜ ਕਾਲਜ ਕਾਲਜ ਕਾਲਜ ਕਾਲਜ ਕਾਲਜ ਰਹੀਆਂ ਰਹੀਆਂ ਰਹੀਆਂ ਰਹੀਆਂ ਰਹੀਆਂ ਰਹੀਆਂ ਰਹੀਆਂ ਰਹੀਆਂ ਰਹੀਆਂ ਵਿਧਾਨ ਵਿਧਾਨ ਵਿਧਾਨ ਵਿਧਾਨ ਵਿਧਾਨ ਵਿਧਾਨ ਵਿਧਾਨ ਵਿਧਾਨ ਵਿਧਾਨ ਜਤਿੰਦਰ ਜਤਿੰਦਰ ਜਤਿੰਦਰ ਜਤਿੰਦਰ ਜਤਿੰਦਰ ਜਤਿੰਦਰ ਜਤਿੰਦਰ ਜਤਿੰਦਰ ਜਤਿੰਦਰ ਪਾਰਲੀਮੈਂਟ ਪਾਰਲੀਮੈਂਟ ਪਾਰਲੀਮੈਂਟ ਪਾਰਲੀਮੈਂਟ ਪਾਰਲੀਮੈਂਟ ਪਾਰਲੀਮੈਂਟ ਪਾਰਲੀਮੈਂਟ ਪਾਰਲੀਮੈਂਟ ਪਾਰਲੀਮੈਂਟ ਰਾਜਨੀਤੀ ਰਾਜਨੀਤੀ ਰਾਜਨੀਤੀ ਰਾਜਨੀਤੀ ਰਾਜਨੀਤੀ ਰਾਜਨੀਤੀ ਰਾਜਨੀਤੀ ਰਾਜਨੀਤੀ ਰਾਜਨੀਤੀ ਬੀਤੇ ਬੀਤੇ ਬੀਤੇ ਬੀਤੇ ਬੀਤੇ ਬੀਤੇ ਬੀਤੇ ਬੀਤੇ ਬੀਤੇ ਲੀਡਰਾਂ ਲੀਡਰਾਂ ਲੀਡਰਾਂ ਲੀਡਰਾਂ ਲੀਡਰਾਂ ਲੀਡਰਾਂ ਲੀਡਰਾਂ ਲੀਡਰਾਂ ਲੀਡਰਾਂ ਪਨੂੰ ਪਨੂੰ ਪਨੂੰ ਪਨੂੰ ਪਨੂੰ ਪਨੂੰ ਪਨੂੰ ਪਨੂੰ ਪਨੂੰ ਸ਼ਾਮਲ ਸ਼ਾਮਲ ਸ਼ਾਮਲ ਸ਼ਾਮਲ ਸ਼ਾਮਲ ਸ਼ਾਮਲ ਸ਼ਾਮਲ ਸ਼ਾਮਲ ਸ਼ਾਮਲ ਵਿਰੋਧ ਵਿਰੋਧ ਵਿਰੋਧ ਵਿਰੋਧ ਵਿਰੋਧ ਵਿਰੋਧ ਵਿਰੋਧ ਵਿਰੋਧ ਵਿਰੋਧ ਹੋਂਦ ਹੋਂਦ ਹੋਂਦ ਹੋਂਦ ਹੋਂਦ ਹੋਂਦ ਹੋਂਦ ਹੋਂਦ ਹੋਂਦ ਦੋਸ਼ ਦੋਸ਼ ਦੋਸ਼ ਦੋਸ਼ ਦੋਸ਼ ਦੋਸ਼ ਦੋਸ਼ ਦੋਸ਼ ਦੋਸ਼ ਪਾਰਟੀ ਪਾਰਟੀ ਪਾਰਟੀ ਪਾਰਟੀ ਪਾਰਟੀ ਪਾਰਟੀ ਪਾਰਟੀ ਪਾਰਟੀ ਪਾਰਟੀ ਸਾਲਾਂ ਸਾਲਾਂ ਸਾਲਾਂ ਸਾਲਾਂ ਸਾਲਾਂ ਸਾਲਾਂ ਸਾਲਾਂ ਸਾਲਾਂ ਸਾਲਾਂ'

wordcloud = WordCloud(font_path = "/databricks/python/lib/python3.5/site-packages/wordcloud/DroidSansMono.ttf",
stopwords=STOPWORDS,
background_color='white',
width=1800,
height=1400
).generate(words)

fig, ax = plt.subplots()
plt.imshow(wordcloud)
plt.axis('off')
display(fig)

Expected Results

Actual Results

image

Versions

Linux-4.4.0-1050-aws-x86_64-with-Ubuntu-16.04-xenial
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609]
NumPy 1.11.1
matplotlib 1.5.3
wordcoud 1.4.1

@amueller
Copy link
Owner

It's not really feasible to include a font that contains all unicode symbols. I looked into it and it would totally blow the size of the repository / package. There are probably system fonts that you can use. Closing as duplicate of #238. Also see the discussion in #219 (comment)

Using a font that is made up of multiple parts of google's noto might be a possible solution. Covering all of unicode is not (the CJK part is >100mb)

@jcfr jcfr added this to the 1.5.0 milestone Jul 26, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants