If you want to identify which issues and sub-issues tend to co-occur in your dataset, multiple correspondance analysis may be an adequate tool here, for exploratory purposes. Treating "No" as a sub-issue in your data might be useful. Here is an example, with a made up dataset where users can choose among 3 main issues, and 3 related sub-issues:
For interpretation, see How do I interpret a plot of variables created in FactoMineR? , but for example we see that "sub-issue 3" from issue 1 and issue 2 are close together (upper left quadrant), and "sub-issue 1" of issue 2 and "sub-issue 2" of issue 3 seem to repel each other (top and bottom of the graph). As you have many sub-categories, the graph will probably be hard to read, so you may want to merge some categories together, or exclude some of them from the analysis altogether. What to do depends on your goal.
As you mention segments of users, you can throw in some variables related to your users (gender, location, etc.), to see how their values relate to specific issues (if you have some variables that are not categorical, a relevant extension of MCA to use here would be factor analysis of mixed data). You could include these variables as active or supplementary variables, depending on how you want to conduct your exploration.
Finally, note the graph can get tricky to analyze co-occurrences of issues, if a lot of users tend to pick only one single main issue. In this case, the occurences of "No" will dominate the graph, which could make it uninformative. A solution to this problem may be to restrict the MCA graph to the subset of users who have complained about more than one issue.
There are multiple R packages offering MCA or FAMD. I used the package FactoMineR to generate the graph above, but alternatives include GDATools or PCAmixdata. Other programming languages or statistical software generally offer this kind of feature, e.g. in Python there's the nice Prince library doing this kind of thing.
On the other hand, if you want to see the repartition of complaints among the main issues and sub-issues and how their flow is directed, you could use a Sankey diagram.
Here's an example showing the repartition of the US coronavirus stimulus bill, in terms of money, in many categories and subcategories (the graph is a courtesy of SevenandForty, license CC BY-SA):
However, in your situation, the problem is that you might end up with many nodes and links, making the graph hard to read.
Possible strategies to avoid this problem include:
hiding or showing some nodes of your choice, given a certain criteria of interest (e.g. hiding all nodes under or above a certain number of occurrences, or hiding nodes related to systemic problems that would require too much investment to solve on the short run). In this case, you should add a reminder somewhere on the graph, mentioning that some categories have been hidden.
merging some categories or sub-categories together to make the graph more readable. You could use a quantitative or qualitative criteria for this purpose, for instance:
- merging categories or sub-categories with low counts in an "Other issues" category;
- merging categories that respondents often choose simulteanously. For example, if respondents always choose "Poor UI" and "Poor accessibility" simulteanously, then you could merge them in a "Poor UI & accessibility" category;
- merging categories that, from your domain knowledge, you identified as extremely similar (even if users do not seem to choose them simulteanously).
Note that it might be tricky to merge two parent categories together, because then you have to decide what to do with their children (Merge all of them too? Keeping all of them distinct? Keeping only some of them distinct, and merge some others?).
Another drawback to this kind of visualization is that by default it won't show issues or sub-issues that are never a cause for user complaints, unless you tweak your data by adding a really small count to these issues - but this could make your graph somehow misleading. If you think you need to do that, a (not very satisfying) solution to mitigate this problem could be to add "0" next to the label of these categories, and giving further explanations in the footnotes. Otherwise, creating a simple, separate list or table of issues that never occur could be a solution. Maybe there are other solutions to this problem, but it should probably be a separate question.
All these decisions to take (which nodes to hide or to merge, etc.) require knowing the eventual purpose of the visualization, which you don't mention in your question.
Some R packages offering Sankey diagrams generation are networkd3, ggalluvial, and plotly. There are probably others. From experience, it may be sometimes a challenge to make this kind of graph nice to read.