Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Graphs should support Unicode characters & other improvements #2704

Closed
mattab opened this Issue · 35 comments

4 participants

@mattab
Owner

Here is the current list of requests to improve ImageGraph plugin (#1721)

  • Fatter line on graphs
    Maybe add 2 pixels to make it more visible in all devices?

  • Graph line has too many vertical lines in the background
    The standard piwik displays the grey vertical line in the background every 5 label. see screenshot.

Also, the horizontal grey line in this screenshot is too thick, can we make it slightly smaller (1 pixel?)?

  • Show more labels on X Axis
    • Example with 2 vertical bars 148.png, only one label is shown. When there are only 2 elements to plot we should display both labels on X Axis. Then it would stop the legend text after half of the axis. Important in case for example the Keyword for the first plot has a very long string, should not overlap but cut.
    • Also when there are 5 values, only the first is displayed in Screenshot_150. However on screenshot 151 all labels are displayed, which then looks amazing!! In the algorithm that decides how often you plot, could you also truncate the text after 15 characters for example, then we can safely plot one label every two plots.

What are your thoughts guys?

  • Support for all fonts (chinese, arabic, japanese, etc.)

I thought we could use the PDF fonts, but they are in a raw format (see https://github.com/piwik/piwik/blob/master/libs/tcpdf/fonts)

however the graph library pcharts is using GD freetype imagettf functions which require a .ttf file (currently tahoma.ttf at https://github.com/piwik/piwik/blob/master/libs/pChart.1.27d/Fonts

Is there a way we can reuse the tcpdf fonts on the graphs, to automatically handle all languages?
Or should we bundle extra .ttf to support all existing languages (potentially adding a lot of bytes to the Piwik download since these fonts are heavy...)

Would anyone know how to solve this problem? :)

@mattab
Owner

Attachment:
Screenshot_148.png

@mattab
Owner

Attachment:
Screenshot_150.png

@mattab
Owner

See also #2706 Support graphs in Email reports

@robocoder
Collaborator

Trunk has a license conflict. From #1721:
The pChart library contains Microsoft fonts (i.e., tahoma.ttf in pChart 1.27d and verdana.ttf in pChart 2) that don't allow for this form of redistribution. The font should be removed from the package. (The user can be instructed to install the missing font, if required.)

@robocoder
Collaborator

If the tahoma font is required, please see if the LGPL tahoma.ttf font from the Wine project works as a replacement. (Supposedly has similar/same kerning to Microsoft's.)

http://source.winehq.org/git/wine.git/tree/HEAD:/fonts

@robocoder
Collaborator

Take a look at GNU Unifont: http://unifoundry.com/unifont.html -- it's a pan-unicode font with lots of coverage and is included with Debian.

It's supposedly GPL v2 or higher, but there's an unanswered question in the Debian bugs database. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=584672

@mattab
Owner

Looks interesting, but very big font, as expected :)

Is there a TTF version?

@mattab
Owner

Attachment: PDF Reports with graphs, showing that the legends is not frequent enough
Graphs legends not often.pdf

@mattab
Owner

When we create the PDF reports with all reports as vertical bar graph, unfortunately the report is not useful because the graphs do not show enough legends. We should, for the Keywords, Countries, Referrers, Pages, etc. show the X legend for EACH data point. The legends text would have to be vertical or diagonal to fit, and we could display maybe 10-15 maximum?

This is I believe the most urgent item to tackle to improve the Graphs :)

@JulienMoumne
Collaborator

I'm currently investigating the comment:9 legend issue.

@JulienMoumne
Collaborator

The best way to go forward with comment:9 is to introduce a new type of graph: horizontal bars.

I'm currently refactoring the whole ImageGraph Plugin code.

@JulienMoumne
Collaborator

Per Anthon's suggestions, I'd like to:

  • remove licensed font
  • select fonts according to locale (like in the PDFReport plugin)

However,

  • the fonts from the tcpdf plugin doesn't seem to be in the same format as the ones from the pChart library
  • the pChart library doesn't have the fonts we need to be consistent with the PDFReport plugin
  • pChart 2 doesn't have the font that is currently in use by the ImageGraph plugin (tahoma)

How do you suggest we deal with this ?

@anonymous-piwik-user

Maybe we should write the chart drawing on our own. If you also think so, I could start with this task...

@JulienMoumne
Collaborator

I've actually almost finished updating the ImageGraph plugin to use pChart 2.1.3.

I don't think writing our own charting library is wise considering pChart has almost all we need.

@mattab
Owner

Re: Fonts. Yes this is a known problem, see ticket description. Fonts from tcpdf seem to not be reusable for graphs (since not in ttf format)...

You can plug the free tahoma font in the imagegraph plugin, sure, it should just work like the other tahoma.

good luck, looking forward to seeing the result!

@robocoder
Collaborator

Wine's tahoma font has the same kerning as Microsoft's, but doesn't lacks many anti-aliasing hints, so it looks kind of ugly.

Unifont is a ttf, but font width and kerning is different.

@JulienMoumne
Collaborator

Attachment: unifont demo
unifont.jpeg

@JulienMoumne
Collaborator

Attachment: tahoma demo
tahoma.jpeg

@JulienMoumne
Collaborator

Attachment: unifont demo
unifont.png

@JulienMoumne
Collaborator

Attachment: tahoma demo (png seems to be better for comparison, maybe there is an even better format?)
tahoma.png

@JulienMoumne
Collaborator

Please discard all the tahoma examples. I used the Microsoft file.

I'm close to fixing this ticket and the two related ones (#2788 #2706).

What's stalling the progress is that we may need to modify pChart 2 source code to fix the following issue : http://sourceforge.net/tracker/?func=detail&aid=3443890&group_id=227755&atid=1071632

Also, I have yet to find a way to display icons and percentages as specified in http://issues.piwik.org/attachments/2704/Wishlist%20graphs%20horizontal%20bars.jpg

@mattab
Owner

I have contacted pCharts dev by email - not sure what is the best way to get things moving faster?

Did you take a shot yourself, maybe the bug can be cracked in a few minutes ;-)

Icons & percentages, probably not possible now, would require new features in the lib. If not easy, it will be no problem committing without it!

@JulienMoumne
Collaborator

I'll try and fix it.

Concerning LEGALNOTICE, does the wine font belong to section THIRD-PARTY CONTENT ?

Also, the pChart 2 readme mention the font files we decided to remove :

  The provided font files are licensed under their own terms :


    dvent_light.ttf Copyright Andreas K. inde
    Bedizen.ttf Copyright Tepid Monkey Fonts
    calibri.ttf Copyright Microsoft
    Forgotte.ttf    Copyright Ray Larabie
    GeosansLight.ttf    Copyright Manfred Klein
    MankSans.ttf    Copyright Manfred  Klein
    pf_arma_five.ttf    Copyright Yusuke Kamiyamane
    Silkscreen.ttf  Copyright Jason Aleksandr Kottke
    verdana.ttf Copyright Microsoft

Do we leave it that way ?

@robocoder
Collaborator

THIRD-PARTY CONTENT: yes, that's the appropriate section for non-code.

Leave pChart's readme as is. Just add a note to piwik/libs/README_LIBS mentioning the font removal.

@mattab
Owner

(In [5549]) Refs #2704 Restoring _GET parameters to original values, even when an exception is thrown. This might fix some bugs in scheduled reports when
1) reports contains several graphs
2) one or several graphs have "no data"
3) the following graph wouldn't start with the correct value of _GET causing maybe problems?

@JulienMoumne
Collaborator

New graph type Horizontal Bar requirement moved to #2828 for changelog clarity.

@JulienMoumne
Collaborator

Percentage values in static graphs deferred to #2829

@JulienMoumne
Collaborator

(In [5582]) * fixes #2706, #2828, #2704, refs #1721, #2637, #2711, #2318, #71 : horizontal static graph implemented

  • fixes #2788, refs #2670, #1721, #2637, #2711 : default graph type logic moved to ImageGraph API, improved date/period logic, new parameter graphs_default_period_to_plot_when_period_range
  • fixes #2704, #2804, refs #1721 : pChart updated to 2.1.3, pChart code removed from Piwik code, OOP refactoring, support for unifont.ttf if present in ImageGraph/fonts, testAllSizes now uses report metadata ImageGraphUrl
  • refs #5491 : space between report title and report table reduced to avoid page overflow
  • refs #2829 : TODO display percentages
  • r5544, r5547, r5549 merged
@JulienMoumne
Collaborator
@mattab
Owner

(In [5736]) Refs #2704 svn clean up unused directories

@mattab
Owner

see #3304 UX: Automatically download the unicode font when it is needed the first time.

@mattab
Owner

I think this ticket is closed . please create new ticket for "horizontal and vertical bars should have a maximum width to avoid drawing huge bars when few of them are displayed " if necessary :) % was moved to #2829

@mattab
Owner

Milestone 1.8.x Piwik 1.8.x deleted

@mattab mattab added this to the 1.12.x - Piwik 1.12.x milestone
@JulienMoumne JulienMoumne was assigned by mattab
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.